簡體   English   中英

生成多維動態javascript數組

[英]generating multidimensional dynamic javascript array

我正在嘗試使用for循環生成n數組,並使用for循環從n其他數組中推送一個額外的元素到每個這些數組。

var userlist = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'];

var selectlist = ['c', 'f', 'k'];

get_field_options = userlist.filter(function (el) {
    return selectlist.indexOf(el) < 0;
});

var selectlen = selectlist.length;
var op_arr = new Array();

for (var i = 0; i < selectlen; i++) {
    op_arr[i] = new Array();
    op_arr[i] = get_field_options;
    op_arr[i].push(selectlist[i]);
    console.log(op_arr[i]);
}

這是我工作的小提琴

但每次都會將項目添加到同一數組。 我做錯了什么?

這行op_arr[i] = get_field_options; 使您的數組引用同一對象。

您需要克隆 get_field_options以獲得一個新數組。 一種簡單的克隆方法是像這樣使用JSON.stringify。

op_arr[i] = JSON.parse(JSON.stringify(get_field_options));

還有一種方法,使用mapconcat函數

var op_arr = selectlist.map(function(el){
    return get_field_options.concat(el);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM