gpt4 book ai didi

javascript - 复制对象,然后更新 JSON 对象中的值

转载 作者:行者123 更新时间:2023-11-29 16:51:13 25 4
gpt4 key购买 nike

我在 jquery 中有一组 json 对象。我想复制一个对象,然后根据 if 条件替换原始对象中的键值。但每次我替换单个对象中的值时,它都会替换两个对象中的值。我只想更换一个,即原装我使用了 break 和 return false 语句,但没有用。

var index=getIndex(class_id,teacher_id);

finalJson[index]['teacher_name']='asad';

function getIndex(class_id,teacher_id){
for(var it in finalJson){
if(finalJson[it]['class'] == class_id && finalJson[it]['type'] == 'c'){
finalJson.push(finalJson[it])
return it;
}
}
}

请任何人帮助这里是 if 条件。提前致谢。

最佳答案

当您执行 finalJson.push(finalJson[it]) 时,您正在将对旧对象的引用再次推送到数组中。因此,对一个引用所做的任何操作都将在新引用指向的对象上执行。这就是为什么您需要使用旧对象的属性创建一个新对象(使用 Object.create)然后推送它。

替换

finalJson.push(finalJson[it])

with(不要使用这个选项)

finalJson.push(Object.create(finalJson[it]))

或较慢但深度复制的选项

finalJson.push(JSON.parse(JSON.stringify(finalJson[it])));

关于javascript - 复制对象,然后更新 JSON 对象中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35986489/

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