如何在对象数组中克隆特定的键值对?

时间:2019-02-13 22:01:56

标签: arrays angular typescript

我有一个对象数组

resources=[{name:'x', title:'xx',..},{name:'y',title:'yy',..}..]

我通过将各个标题推到新数组来填充resources数组的所有标题的HTML工具提示

dialogOkClick(field) {

  this.resources.forEach((res) => {
    if(this.selectedItems.indexOf(res.title) === -1) {
      this.selectedItems.push(res.title);
      this.tooltipText = this.selectedItems.join(', ');
    }
  });

}

将单个项目推入新数组会导致两个数组保持一致。如何一次性将所有标题克隆到一个新数组中,而不是逐项推送?

谢谢!

1 个答案:

答案 0 :(得分:1)

这更多是Javascript问题,而不是与Angular相关的问题...

您可以在Javascript中使用数组的map函数。这个想法是您为原始数组中的每个元素返回一个新值。

let titles = resources.map(obj => obj.title);

这样,resources数组中的所有标题都将出现在titles数组中。

此外,我建议您从join循环中退出foreach调用。基本上,您将resources数组中每个项目的所有元素连接一次。