Перебор значений свойства массива объектов - PullRequest
0 голосов
/ 29 августа 2018

Я использую Angular InMemoryService для хранения поддельных данных. Я хотел бы преобразовать свойство "HashtagDB" в массив "хэштеги". Этот массив hashtags должен содержать только значения, но не метки, чтобы я мог использовать его для отображения в виде Angular-Material-Chips.

Насколько я понимаю, HashtagDB - это свойство массива безымянного объекта. Это верно? Как мне преобразовать данные из массива?

export class InMemoryDataService implements InMemoryDbService {
  createDb() {
    const person = [
      { Id: 1,
        HashtagsDB: [ {hashtag: 'world'}, {hashtag: 'digital'}, {hashtag: 'economy'},
    ];
    return {person};
  }
}
hashtags: string[] = [/*'world', 'digital', 'economy*/];

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете проецировать HashtagsDB на строку [] с помощью оператора map .

т.е.

var people = [
  {
    ID: 1, 
    HashtagsDB: [{hashtag: 'world'}, {hashtag: 'digital'}, {hashtag: 'economy'}]
  }
];

// Hashtags of the first person.
var hashtags = people[0]['HashtagsDB'].map(item => item['hashtag']);

console.log(hashtags);
// Should returns
/*[
  "world",
  "digital",
  "economy"
]*/
...