[英]Javascript : Assigning one array to another array which is a property of an object
所以我有這個數組
var collectData = ["one", "two"];
和一個對象
var datasets = {
labels : ["something", "something"]
}
在我的程序中,當啟動應用程序時,collectData是動態生成的並分配了值,我想將這些值分配給對象內部的labels數組。 我嘗試了以下方法
labels : [].concat(collectData)
labels : collectData.slice()
但這沒用。 我究竟做錯了什么?
只需使用您最初擁有的陣列上的concat即可。 當您執行[].concat
您只是將collectData
元素添加到新的數組文字中,因此最終只能得到collectData
var collectData = ["one", "two"];
var datasets = {
labels : ["something", "something"].concat(collectData)
}
另外,您始終可以在聲明對象datasets
之后的某個時候執行datasets.labels.concat(collectData)
要修改屬性,請使用分配:
datasets.labels = collectData;
如果要復制collectData
數組而不是直接分配,請使用:
datasets.labels = collectData.slice();
我不完全了解您要做什么,但是我有兩個選擇供您選擇:
var collectData = ["one", "two"]; var datasets = { labels : [] } datasets.labels.push(collectData); console.log(datasets.label);
結果:
{
labels: [["one","two"]]
}
var collectData = ["one", "two"]; var datasets = { labels : [] } for(i=0; i<collectData.length; i++){ datasets.labels.push(collectData[i]); } console.log(datasets.labels)
結果:
{
datasets: ["one", "two"]
}
問題是,collectData在全局范圍內初始化,並在回調函數中分配了值。 然后,當我嘗試為標簽數組分配值時,該標簽數組位於對象數據集內部,而數據集本身不在回調函數內部,而是在回調函數外部。 由於某種原因,一旦程序離開回調函數,使其再次完全空白,我將不知道collectData數組中的所有數據都消失了。 這就是為什么標簽仍然作為空數組出現的原因。 我認為我未能正確解釋這個問題。 我感謝大家抽出寶貴時間來回答。 如果有人可以向我解釋重置數組的回調函數怪癖,那就太好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.