扫码关注官方订阅号
我现在有个object,里面有N多层。就像一棵树一样。我现在想对第N层的数组第K个进行修改赋值,请问如何操作?
我用递归循环找到了那个项,却发现可以取,怎么修改放回去,无从下手。。。
就算可以做到,这样会不会太不方便了,我要不要修改数据结构,变成1层就行了?
var obj = { objA: { objB: { objC: { objD: { objE: 'target' } } } } } function EdiObjValue(obj, target, editName) { for (var prop in obj) { if (obj.hasOwnProperty(prop)) { if (obj[prop] == target) { obj[prop] = editName; } if (Object.prototype.toString.call(obj[prop]) == '[object Object]') { EdiObjValue(obj[prop], target, editName) } } } } EdiObjValue(obj, 'target', 'NewName'); console.log(obj); { objA: { objB: { objC: { objD: { objE: 'NewName' } } } } }
引用
“我用递归循环找到了那个项,却发现可以取,怎么修改放回去,无从下手。。。”
楼主既然都找到了object的那一项,直接赋值不就好了,object就能被更新了。请问楼主是什么样的object呢?取到了,应该就能赋值才对。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
引用
楼主既然都找到了object的那一项,直接赋值不就好了,object就能被更新了。请问楼主是什么样的object呢?取到了,应该就能赋值才对。