добавление значений из массива в объект JavaScript - PullRequest
0 голосов
/ 28 мая 2018

У меня есть массив.

var nestedArr =[['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5]]

Мне нужно использовать для цикла это:

var obj = { loop0: 0, loop1: 1, loop2: 2 ...};

Я пытаюсь это:

for(var j = 0; j < nestedArr.length; j++){
    obj[nestedArr[j][0]] = nestedArr[j][1]}

ноЯ получаю значения как неопределенные.Как правильно добавить значения.

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Работает нормально для меня.Просто добавил определение obj

var nestedArr =[['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5]],
     obj = {};

for(var j = 0; j < nestedArr.length; j++){

obj[nestedArr[j][0]] = nestedArr[j][1]

}

console.log(obj)
0 голосов
/ 28 мая 2018

Используя Array.prototype.reduce, вы можете сделать это.

var nestedArr =[['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5]]

const res = nestedArr.reduce((acc, v) => {
  acc[v[0]] = v[1];
  return acc;
}, {});

console.log(res);
0 голосов
/ 28 мая 2018

Вы можете использовать функцию reduce, как показано ниже:

var nestedArr = [
  ['loop0', 0],
  ['loop1', 1],
  ['loop2', 2],
  ['loop3', 3],
  ['loop4', 4],
  ['loop5', 5]
];

var output = {};

nestedArr.reduce(function(itm) {
  output[itm[0]] = itm[1];

});

console.log(output);

Ваш цикл также правильный:

var nestedArr = [
  ['loop0', 0],
  ['loop1', 1],
  ['loop2', 2],
  ['loop3', 3],
  ['loop4', 4],
  ['loop5', 5]
];

var obj = {};

for (var j = 0; j < nestedArr.length; j++) {

  obj[nestedArr[j][0]] = nestedArr[j][1]

}

console.log(obj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...