Как инициализировать пустой массив объекта с предопределенным массивом? - PullRequest
1 голос
/ 11 июня 2019

У меня много проблем с инициализацией массива объекта с помощью предопределенного массива. Я не могу скопировать этот массив в мой новый массив объектов. Если кто-то знает это, дайте мне знать.

admins в основном массив, который содержит строковые элементы, такие как ["hello","hii","sup",....]

var admins = ["hello","hii","sup"];
var obj = [];

for(var i=0; i<admins.length; i++)
{
    obj[i].name = admins[i];
}

console.log(obj);

"TypeError: Невозможно установить свойство 'name' из undefined"

Ответы [ 4 ]

4 голосов
/ 11 июня 2019

Используйте карту :

var newArray = admins.map((admin) => ({ name: admin }));
1 голос
/ 11 июня 2019

ИМХО: использовать оператор распространения:

const admins = ["John", "Doe", "Duck"];
const obj = [...admins].map(
  (admin) => ({ name: admin })
);
console.log(obj); 
0 голосов
/ 11 июня 2019

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

 var obj = [];

for (var i = 0; i < admins.length; i++) {
  let temp = {};
  temp["name"] = admins[i];
  obj.push(temp);
}

console.log(obj);
0 голосов
/ 11 июня 2019

Вам нужно определить obj [i] для пустого объекта (obj [i] = {}).

вы пытаетесь получить доступ к свойству name undefined (obj [i] не определено в вашем коде).

var obj = [];

    for(var i=0; i<admins.length; i++)
    {
     obj[i] = {
      name: admins[i]
     }
   }

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