迭代对象数组属性的值

时间:2018-08-29 20:25:28

标签: javascript arrays object object-properties angular-in-memory-web-api

我使用Angular InMemoryService存储一些虚假数据。我想将“ HashtagDB”属性转换为数组“ hashtags”。该“标签”数组应仅包含值,而不包含标签,以便我可以将其显示为“角材料块”。

据我了解,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 :(得分:0)

您可以使用 map 运算符将HashtagsDB投影为字符串[]。

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