我正在创建一个没有循环的数组对象,如下所示:
var data = [];
var obj = {};
obj["key1"] = 'val 1';
obj["key2"] = 'val 2';
data.push(obj);
上面的代码生成了 Array[Object]
,但是当我尝试在如下循环中创建它时:
var data = [];
for (var i = 0; i < len; i++) {
var obj = {};
obj["key1"] = 'val 1';
obj["key2"] = 'val 2';
data.push(obj);
}
它生成 Array[]
,在第二个数组中有一个额外的索引。那么我怎样才能得到如下所示的数组:
数组[对象,对象,对象]
最佳答案
如果你想要:-Array[Object,Object,Object]
那么你的代码工作得很好
参见示例:-
var data = [];
var len = 3;
for (var i = 0; i < len; i++) {
var obj = {}; // put outside
obj["key1"] = 'val 1';
obj["key2"] = 'val 2';
data.push(obj);
}
console.log(data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
注意:- 我认为 len
变量存在问题,因为of which loop performed one more time and you get an extra index?
检查并尝试像 len = len-1;
这样的东西,然后在循环中使用它
关于javascript - 如何在没有额外键的情况下循环创建数组对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43907517/