0

我使用 Angular InMemoryService 来存储一些假数据。我想将“HashtagDB”属性转换为数组“hashtags”。这个“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*/];
4

1 回答 1

0

您可以使用map运算符将 HashtagsDB 投影到 string[] 。

IE

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"
]*/

于 2018-08-29T20:34:12.077 回答