как извлечь значение из объекта и поместить его в массив

#javascript #arrays #filter #angular8 #immutability

#javascript #массивы #Фильтр #angular8 #неизменность

Вопрос:

я хотел бы извлечь filterPillvalue и поместить его в массив, а вывод массива должен быть таким:

 mode = ['anyValue','Repsonding','Unresponsive']
  

Вот моя попытка

 this.items = [
  {
    filterPillValue: 'anyValue',
    id: 'all-systems',
    label: 'All systems'
  },
  {
    filterPillValue: 'Responding',
    id: 'responding',
    label: 'Responding systems'
  },
  {
    filterPillValue: 'Unresponsive',
    id: 'unresponsive',
    label: 'Unresponsive systems'
  }
];
  

моя попытка, которая не работает в этом случае

 mode = this.items.filter(x=>x.filterPillValue);
  

Комментарии:

1. map это то, что вам нужно mode = this.items.map(x=>x.filterPillValue);

2. теперь работает. используем ли мы map, потому что это объект, а не массив?

3. @user21 нет, вы используете map , потому что хотите преобразовать один массив в другой. Смотрите Array.prototype.map()

Ответ №1:

Это будет работать.

 mode = this.items.map(({filterPillValue}) => filterPillValue);
  

или

 mode = this.items.map((item) => item.filterPillValue);
  

Ответ №2:

 items = [
  {
    filterPillValue: 'anyValue',
    id: 'all-systems',
    label: 'All systems'
  },
  {
    filterPillValue: 'Responding',
    id: 'responding',
    label: 'Responding systems'
  },
  {
    filterPillValue: 'Unresponsive',
    id: 'unresponsive',
    label: 'Unresponsive systems'
  }
];

const node=items.map(item=>item.filterPillValue)
console.log(node)