如何为循环创建数组

时间:2018-05-30 06:25:27

标签: javascript arrays loops

我想创建一个这样的数组:

[{'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}] 

6 个答案:

答案 0 :(得分:2)

您只是覆盖'b','c','d'的值,并在最后将该值分配给'dataResult',因此您无法获得预期的结果。

试试这个。

dataResult = [];
for(i = 0; i < 3; i++){
    dataResult.push({ 'b': i, 'c': i+1, 'd': i+2 });
};
console.log(dataResult);

答案 1 :(得分:1)

您必须在循环内创建对象,然后将其推送到数组:

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);

答案 2 :(得分:1)

您在循环外创建对象。您需要在循环中创建对象

尝试以下

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);

答案 3 :(得分:1)

在循环内创建对象并将其推送到数组

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)

答案 4 :(得分:1)

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)

答案 5 :(得分:0)

您在循环后设置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);