我有一个对象数组
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(', ');
}
});
}
将单个项目推入新数组会导致两个数组保持一致。如何一次性将所有标题克隆到一个新数组中,而不是逐项推送?
谢谢!
答案 0 :(得分:1)
这更多是Javascript问题,而不是与Angular相关的问题...
您可以在Javascript中使用数组的map
函数。这个想法是您为原始数组中的每个元素返回一个新值。
let titles = resources.map(obj => obj.title);
这样,resources
数组中的所有标题都将出现在titles
数组中。
此外,我建议您从join
循环中退出foreach
调用。基本上,您将resources
数组中每个项目的所有元素连接一次。