[英]How to create array for loop
我想创建一个像这样的数组:
[{'b':0,'c':1,'d':2},{'b':1,'c':2,'d':3},{'b':2,'c':3,'d':4}]
如何使用Javascript执行此操作?
我已经试过了:
for(i = 0; i < 3; i++){
var b = i;
var c = i+1;
var d = i+2;
};
dataResult={"b":b,"c":c,"d":d};
alert(dataResult) //not working result [{'b':0,'c':1,'d':2},{'b':1,'c':2,'d':3},{'b':2,'c':3,'d':4}]
您只是覆盖'b','c','d'的值,最后将该值分配给'dataResult',所以您没有得到预期的结果。
尝试这个。
dataResult = []; for(i = 0; i < 3; i++){ dataResult.push({ 'b': i, 'c': i+1, 'd': i+2 }); }; console.log(dataResult);
您必须在循环内创建对象,然后将其推送到数组:
const arr = []; for (let i = 0; i < 3; i++) { var b = i; var c = i + 1; var d = i + 2; arr.push({ b, c, d }); } console.log(arr);
但是使用Array.from
这里会更优雅:
const arr = Array.from({ length: 3 }, (_, i) => { const b = i; const c = i + 1; const d = i + 2; return { b, c, d }; }); console.log(arr);
您正在循环外创建对象。 您需要在循环内创建对象。
尝试跟随
var arr = []; for(let i = 0; i < 3; i++){ var b = i; var c = b+1; // as b = i, you can change c = b + 1 var d = c+1; // as c = i + 1, you can change d = c + 1 arr.push({b,c,d}); }; console.log(arr);
在循环内创建对象并将其推送到数组
var arr = []; for (var i = 0; i < 3; i++) { let obj = { b: i, c: i + 1, d: i + 2, } arr.push(obj) }; console.log(arr)
var myArr = []; for(var i = 0; i < 3; i++){ var data = i; myArr.push({ b: data, c: data + 1, d: data + 2 }) } console.log(myArr)
您要在循环后设置b,c,d的值,以便将b,c,d的最新值放入dataResult中。 相反,您应该使用一个空数组初始化dataResult,并在循环的每一步之后将值推入该数组
var a,b,c;
var dataResult = [];
for(i = 0; i < 3; i++){
b = i;
c = i+1;
d = i+2;
dataResult.push({"b":b, "c":c, "d":d});
};
alert(dataResult);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.