[英]seperate out an array of objects inside an object (Javascript)
我有一個數據對象。 如果我做console.log(data),這是輸出。
Object {Info: Array[3]}
> Info: Array[3]
>[0]: Object
name: 'Alex'
sex: 'Male'
new_joinee: 0
>[1]: Object
name: 'Anna'
sex: 'female'
new_joinee: 1
>[2]: Object
name: 'lester'
sex: 'Male'
new_joinee: 1
現在,如果我要訪問new_joinee,則必須輸入以下內容。
data.Info[0].new_joinee
data.Info[2].sex
這里僅舉幾個例子。 我想消除這一點,而是只需輸入即可獲取輸出
Info[0].new_joinee
Info[2].sex
有人可以讓我知道如何實現這一目標。 (由亞歷山大回答)
我對此有一個查詢。 因為,我們可以看到new_joinee為0或1。我希望它對0為false,對1為true。因此,新數據應如下所示。
Info: Array[3]
>[0]: Object
name: 'Alex'
sex: 'Male'
new_joinee: false
>[1]: Object
name: 'Anna'
sex: 'female'
new_joinee: true
>[2]: Object
name: 'lester'
sex: 'Male'
new_joinee: true
我需要動態地做到這一點。 有沒有辦法實現這一目標?
您可以將對象屬性分配給變量( var Info = data.Info;
)
var data = { Info: [ { name: 'Alex', sex: 'Male', new_joinee: 0 }, { name: 'Anna', sex: 'female', new_joinee: 1 } ] }; var Info = data.Info; console.log(Info[0].name); console.log(Info[0].new_joinee); console.log(Info[0].sex); console.log(Info[1].name); console.log(Info[1].new_joinee); console.log(Info[1].sex);
Javascript數組通過引用 分配 。 因此,如果您只是聲明一個新變量並分配所需的屬性
var info = data.Info;
您可以直接使用該對象的原始屬性的引用。
console.log(info[2].name,'is',info[2].sex);
對於第二個問題, .map()
是您的朋友
var info=data.Info.map(function(element){
element.new_joinee=(element.new_joinee!=0);
return element;
});
請注意,您已更改了語義。 現在, info
是數組的副本 ,而不是引用。 即使它包含的對象仍然是對原始對象的引用。
你可以這樣做
var info = data.Info;
info.map(function(element){
element.new_joinee=(element.new_joinee!=0);
return element;
});
在這種情況下, info
和data.Info
是對同一數組的引用, .map()
創建的副本將被丟棄。 但是,由於對象是對相同對象的引用,因此對象屬性的更改會反映在原始數組中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.