Как создать массив для цикла - PullRequest
0 голосов
/ 30 мая 2018

Я хочу создать массив следующим образом:

[{'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 голосов
/ 30 мая 2018

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)
0 голосов
/ 30 мая 2018

Вы устанавливаете значение 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);
0 голосов
/ 30 мая 2018

Создайте объект внутри цикла и поместите его в массив

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)
0 голосов
/ 30 мая 2018

Вы просто переопределяете значения «b», «c», «d» и в конце присваиваете это значение «dataResult», поэтому вы не получаете ожидаемый результат.

Попробуйте это.

dataResult = [];
for(i = 0; i < 3; i++){
    dataResult.push({ 'b': i, 'c': i+1, 'd': i+2 });
};
console.log(dataResult);
0 голосов
/ 30 мая 2018

Вы создавали объект вне цикла .Вам нужно создать объект внутри цикла .

Попробуйте выполнить

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);
0 голосов
/ 30 мая 2018

Вам нужно создать объект внутри цикла, а затем поместить его в массив:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...