gpt4 book ai didi

javascript - 替换数组中的项目并不总是有效

转载 作者:行者123 更新时间:2023-12-02 23:56:50 24 4
gpt4 key购买 nike

我有以下代码

    let item = this.datasets.filter((item) => item.id === tableRow.id);
if (item && item.length != 0) {
// Update case
item[0] = tableRow;
}

它没有正确更新该项目。有时有效,有时无效。

我用以下代码替换了上面的代码:

    let index = -1;
for (let i = 0; i < this.datasets.length; i++) {
if (this.datasets[i].id === tableRow.id) {
index = i;
}
}

if (index !== -1) {
// Update case (delete + insert)
this.datasets.splice(index, 1, tableRow);
}

这总是有效的。第一种方法有什么问题?

谢谢

最佳答案

在第一种情况下,item 包含 Array#filter 返回的新数组。方法,因此更改 item 数组中的元素不会对 datasets 数组进行任何更改。

<小时/>您甚至可以使用 Array#findIndex 简化第二种方法方法。

let index = this.datasets.findIndex((item) => item.id === tableRow.id);
if(index > -1) this.datasets.splice(index,1,tableRow)

关于javascript - 替换数组中的项目并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55339750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com