gpt4 book ai didi

javascript - 更新对象数组而不改变

转载 作者:搜寻专家 更新时间:2023-11-01 04:13:42 25 4
gpt4 key购买 nike

我正在学习 React 教程,但我迷路了。我不明白起始行 9。

enter image description here

所以我试着做了一个微缩模型

const updateTodo = (list, updated) => {
const index = list.findIndex(item => item.id === updated.id)
return [
...list.slice(0,index),
updated,
...list.slice(index+1)
]
}

https://jsbin.com/sifihocija/2/edit?js,console却没有产生作者所做的结果,怎么了?

最佳答案

问题出在这一行:

const index = list.findIndex(item => item.id === updated.id)

更新的是 array , 要访问id,需要指定index还,其他array你正在使用 loop , 所以 item将是每个 objectarray , 和 item.id会给你 id每个 object ,试试这个:

const index = list.findIndex(item => item.id === updated[0].id)

const arr = [
{id:1,name:'hello'},
{id:2,name:'hai'}
]

const arr2 = [
{id:2,name:'this should be a new string'}
]

const updateTodo = (list, updated) => {
const index = list.findIndex(item => item.id === updated[0].id);
return [
...list.slice(0,index),
...updated,
...list.slice(index+1)
]
}

console.log(JSON.stringify(updateTodo(arr,arr2)))

检查工作代码:https://jsbin.com/pazakujava/edit?js,console

如果您在这方面需要任何帮助,请告诉我。

关于javascript - 更新对象数组而不改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053178/

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