javascript - js 多层object赋值的问题
巴扎黑
巴扎黑 2017-04-11 11:23:05
[JavaScript讨论组]

我现在有个object,里面有N多层。就像一棵树一样。我现在想对第N层的数组第K个进行修改赋值,请问如何操作?

我用递归循环找到了那个项,却发现可以取,怎么修改放回去,无从下手。。。

就算可以做到,这样会不会太不方便了,我要不要修改数据结构,变成1层就行了?

巴扎黑
巴扎黑

全部回复(2)
大家讲道理
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中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号