javascript - 生成多维动态javascript数组

标签 javascript

我正在尝试使用 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/

相关文章:

javascript - 如果用户尝试删除未找到的记录,服务器应该返回 200 还是 404?

javascript - 如何在 Angular2 中触发应用程序范围的事件或观察全局变量

javascript - HTML5 拖放不起作用

javascript - 动态添加按钮,同时动态添加文本框 AngularJS

javascript - OData $top 和 PageSize 对 Web API 性能没有影响

Javascript 使用弹出窗口使 HTML 表格可点击

javascript - 是否可以从 JavaScript 调用 hamlet?

javascript - 向父元素和子元素添加 "active"类

javascript - 如何将 javascript 变量传递到 php 来更新表

javascript - 如果 onload 后 iframe 内容发生变化,如何显示所有 iframe 内容?