我正在尝试使用 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]);
}
这是我的工作fiddle .
但每次都会将项目添加到同一个数组中。我做错了什么?
最佳答案
这一行op_arr[i] = get_field_options;
使您的数组引用同一个对象。
您需要clone get_field_options
获取新数组。
一种简单的克隆方法是像这样使用 JSON.stringify。
op_arr[i] = JSON.parse(JSON.stringify(get_field_options));
关于javascript - 生成多维动态javascript数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33361941/