javascript - js 多层object赋值的问题

查看:347
本文介绍了javascript - js 多层object赋值的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我现在有个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'
                }
            }
        }
    }
}

这篇关于javascript - js 多层object赋值的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆