gpt4 book ai didi

javascript - 更新 for 循环内的 Javascript 对象属性

转载 作者:行者123 更新时间:2023-11-28 11:30:05 25 4
gpt4 key购买 nike

我正在尝试用另一个对象更新 JS 对象,这看起来很简单,但值没有更新。

let sampleObj = {
id: 1,
name: 'Kelly'
}

let userData = [{
students: [{
id: 1,
name: 'Sandra'
}]
},
{
students: [{
id: 2,
name: 'Jerome'
}]
}
]

for (let group of userData) {
for (let student of group.students) {
if (student.id === sampleObj.id) {
console.log('updating student object')
student = sampleObj

// student = { ...sampleObj } (another failed attempt)
// userData[group].students[student] = sampleObj (another failed attempt)
}
}
}

console.log('userData', userData)

看起来,student只是一些 float 的东西,在我尝试更新其值时与userData无关。但是,我不知道如何进行更新或我缺少什么。

编辑:预期输出是在找到 student 对象后将其替换为 sampleObj

最佳答案

使用 forEach(el, index) 来代替,以便您可以使用索引来进行更新:

let sampleObj = {
id: 1,
name: 'Kelly'
}

let userData = [{
students: [{
id: 1,
name: 'Sandra'
}]
},
{
students: [{
id: 2,
name: 'Jerome'
}]
}
]

userData.forEach((group, m) => {
group.students.forEach((student, n) => {
if (student.id === sampleObj.id) {
console.log('updating student object')
userData[m].students[n] = sampleObj
}
})
})

console.log('userData', userData)

关于javascript - 更新 for 循环内的 Javascript 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54246232/

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