Angular 5 - 使用数组过滤器替换值

时间:2018-02-23 02:54:49

标签: angular typescript

如何使用数组过滤器替换值?我有一个包含这样的数组:

this.detailsToDisplay = [{key: "key1", value: "value1"},{key: "key2", value: "value2"},{key: "key3", value: "value3"},{key: "key4", value: "value4"},]

然后我尝试用索引3替换索引0中的那个:

this.newValue1 = this.detailsToDisplay.filter(data => data.key === "key3");
            this.detailsToDisplay[0].value = this.newValue1[0].value;

虽然这很好,但如果[0]不恒定怎么办?如何在不明确调用其数组位置的情况下动态地将key3的值分配给key1

2 个答案:

答案 0 :(得分:0)

我知道你特别询问过使用Array.filter但这里不需要它:

this.detailsToDisplay.find(data => data.key === "key1").value = this.detailsToDisplay.find(data => data.key === "key3").value;

答案 1 :(得分:0)

搜索来源和目标。

this.source = this.detailsToDisplay.filter(data => data.key === "key3");
this.target = this.detailsToDisplay.filter(data => data.key === "key1");
if (this.source.length && this.target.length)   
  this.target[0].value = this.source[0].value;