как превратить массив в массив объектов

#javascript #arrays #object

#javascript #массивы #объект

Вопрос:

Я работаю с массивом слов, например:

const words = [«привет», «мир», «как», «есть», «ты»]

Как я могу преобразовать это в массив объектов:

 const words1 = [ {0: "hello"}, {1: "world"},; {2: "how"}, {3: "are"}, {4: "you"} ]
  

Ответ №1:

Вы можете использовать map

 const words = ["hello", "world", "how", "are", "you"]

let op = words.map((value,key) => ({[key]: value}))

console.log(op)  

Ответ №2:

Поехали. Запустите код, и вы увидите распечатанный результат, который вы ищете.

ПРИМЕЧАНИЕ: Это будет работать в старых браузерах и версиях JS. Решения с { [index] : … } не будет.

 const words = ["hello", "world", "how", "are", "you"];
var obj;
for( let i=0; i < words.length; i   )
{
  obj = {};
  obj[i] = words[i]
  words[i] = obj;
}
document.write( JSON.stringify( words ) );  

Ответ №3:

Используйте map и возвращайте объект, где ключом является index , а его значением будет каждый элемент из исходного массива

 const words = ["hello", "world", "how", "are", "you"];
let result = words.map(function(item, index) {
  return {
    [index]: item
  }
});

console.log(result)  

Если вы пытаетесь использовать обычный for цикл, то создайте пустой массив и поместите в него объект. Обратите внимание на то, как i размещается внутри []

 const words = ["hello", "world", "how", "are", "you"];

let newArray = [];

for (let i = 0; i < words.length; i  ) {
  newArray.push({
    [i]: words[i]
  })

}

console.log(newArray)