2017-03-10 66 views
0

我是JavaScript新手,我有一個小問題。我有一個這樣的數組:在一個對象內填充一個javascript數組

name = ["Alex","John", "Mark"]. 

在那之後,我已經和對象與數組裏面是這樣的:

ObjectNames = { 
    labels: [] 
} 

我要填寫標籤陣列THA name數組類的內容這個:

labels = [name[0], name[1], name[2]] 

如何做到這一點?

+0

你已經做到了。 –

+1

只要做ObjectNames.labels = name; – DibsyJr

+0

你展示的作品。你也可以在對象內部使用'labels:name',除非你想克隆所有東西。 – Shilly

回答

3

什麼,你在你的問題確實已經解決您的問題,但你可以試試這個:

ObjectNames = { 
    labels: names 
} 

這將使名稱的副本,並將其存儲在標籤中。

讓我知道,如果它

編輯:安德魯·李指出,沒有必要使用切片,如JavaScript會自動創建一個副本

+1

或者只是'slice()'。不需要論據 – Li357

+0

@Andrew是的,我剛剛意識到這一點,謝謝澄清。我從來沒有確定過Javascript何時製作副本,什麼時候沒有 – Larpee

1

有很多的方式,你可以做到這一點

嘗試這樣

var ObjectNames = { 
    labels: [name[0], name[1], name[2]] 
} 

var ObjectNames = { 
    labels: name 
} 

var ObjectNames = { 
    labels: name.slice() 
} 

ObjectNames = { 
    labels: [] 
} 

ObjectNames.labels=name ; 

或類似這樣的

for(var i=0;i<name.length;i++) 
    ObjectNames.labels.push(name[i]) 

name.forEach(x=> ObjectNames.labels.push(x)) 
+0

我想用for循環做這個不是那樣的 – user7334203

+0

@ user7334203檢查我更新的答案 –

+0

@ user7334203請不要忘記標記它接受:) –

2

你可以做這樣的:

var _name = ["Alex","John", "Mark"]; 
 
var ObjectNames = { 
 
    labels: [] 
 
}; 
 
_name.forEach(function(e) { 
 
    ObjectNames.labels.push(e); 
 
}); 
 
console.log(ObjectNames.labels);

相關問題