gpt4 book ai didi

javascript - 如何使用引用编辑对象的值?

转载 作者:行者123 更新时间:2023-12-02 08:05:48 26 4
gpt4 key购买 nike

我有一个大对象数组persons

persons = [{name:'john1'}, {name:'john2'},...]

我迭代了数组并找到了我有兴趣编辑的对象

objectToEdit = persons .find((person)=>person.name==='john1')

现在我以不可变的方式创建了一个编辑过的对象 (someOtherPerson = {name:'jo​​hnxx'})

objectFinal = {...objectToEdit, someOtherPerson}

现在我想用 persons 数组中的 objectToEdit 替换这个 objectFinal,而不必再次遍历数组。但是执行 objectToEdit =objectFinal ,只会将 objectToEdited 的引用分配给 objectToEdit ,而不会对 persons 数组进行任何更改

是否有一种无需遍历数组即可实现此目的的简洁方法?

编辑:

在这个例子中,persons 中的对象只有一个键(即 name)。这是为了使问题最小化。在我的项目中,我有 30 多个 key 。

最佳答案

如果你想编辑列表中的对象,就地使用Array.prototype.some

var persons = [{
name: 'john1'
}, {
name: 'jack5'
}]

var someOtherPerson = {
name: 'johnxx'
}

persons.some(function(person) {
// if condition, edit and return true
if (person.name === 'john1') {
// use Object.keys to copy properties
Object.keys(someOtherPerson).forEach(function(key) {
person[key] = someOtherPerson[key]
})
// or use assign to merge 2 objects
Object.assign(person, someOtherPerson);
return true // stops iteration
}
})

console.log(JSON.stringify(persons))

关于javascript - 如何使用引用编辑对象的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51807911/

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