【发布时间】:2017-10-24 14:46:28
【问题描述】:
我想使用 typescript 批量更新数组。
我是通过使用 for 循环来做到的。
this.versions = [{ id: 1, VersionName: 'test1' }, { id: 2, VersionName: 'test2' }, { id: 3, VersionName: 'test3' }, { id: 4, VersionName: 'test4' }];
this.selectedVersions = [{ id: 2, VersionName: 'test2' }, { id: 3, VersionName: 'test3' }];
for (let i = 0; i < this.selectedVersions.length; i++) {
this.versions = this._configuration.updateEveryObjectsByKey(this.versions, this.selectedVersions[i], "Id");
}
updateEveryObjectsByKey(listOfdata: any, data: any, key: string) {
listOfdata = listOfdata.map(function (item) {
return item[key] == data[key] ? data : item;
})
return listOfdata;
}
但我不喜欢使用 for 循环。那么让我知道如何使用 typescript 对数组进行批量更新?
【问题讨论】:
-
the question you asked 25 minutes ago 呢?它有 7 个答案。
-
这与使用findIndex或filter多次删除有关。但是通过使用地图或其他方式进行多次更新。所以我问了单独的问题。
-
好吧,够公平
-
您当前的代码实际上并没有修改原始对象。相反,它将用来自
selectedVersions的新对象完全替换原始对象。这是您想要保留的功能吗? -
更新和替换有很大区别,比如你有
{ id: 0, a: 2, b: 3 }。使用{ id: 0, a: 3 }更新将导致{ id: 0, a: 3, b: 3 }而替换将导致{ id: 0, a: 3 }。
标签: javascript arrays angular typescript