Итеративный массив, содержащий пользовательский индекс - PullRequest
0 голосов
/ 18 марта 2020

Я делаю небольшой проект в Angular8, и у меня есть массив, который содержит данные пользователей в качестве объекта. Этот массив предоставлен мне клиентом, который я не могу изменить.

[
 {
  id:045#71, 
  name:'Ahmad', 
  isActive: false
 },

 {
  id:047#71, 
  name:'John', 
  isActive: false
 },
 {
  id:048#71, 
  name:'Doe', 
  isActive: false
 }
]

В этом массиве у меня есть идентификаторы в виде пользовательских индексов , из-за которых я не могу перебрать этот массив , Я получаю undefined в консоли, когда я пытаюсь перебрать массив. Есть ли способ перебрать массив с пользовательскими индексами. Я даже пытался forEach l oop, но он также не работает.

Метод, который я использовал:

usersArray = [
 {
  id:045#71, 
  name:'Ahmad', 
  isActive: false
 },

 {
  id:047#71, 
  name:'John', 
  isActive: false
 },
 {
  id:048#71, 
  name:'Doe', 
  isActive: false
 }
];

ngOnInit() {
this.usersArray.forEach((user)=>{
    console.log(user.id + ' - ' + user.name);
})
}

1 Ответ

0 голосов
/ 18 марта 2020

То, что у вас есть, это то, что мы обычно называем коллекцией. Вы можете получить доступ к элементу из коллекции, если вы знаете его индекс. В большинстве случаев индекс представляет собой целое число, большее или равное нулю. т.е. collection[0] даст вам первый элемент.

Вы можете использовать collection.find(el => el.id ==='045#71'), чтобы найти элемент в коллекции, если он не существует, вернет undefined.

найдите индекс элемента, который вы можете использовать collection.findIndex(el => el.id ==='045#71'), в этом случае он вернет 0

Если вы хотите использовать индексы клиентов, вам придется преобразовать коллекцию в объект, который использует ваши пользовательские индексы в качестве ключей. Неожиданно есть способ использовать пользовательские ключи в массиве, но в JavaScript.

это не распространенная практика.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...