如何通过参数获取Object的子节点?

代码如下:

let china = {
    zhejiang: {
        hangzhou: 'xihu'
    }
}

// xihu
console.log(china.zhejiang.hangzhou)
// xihu
console.log(china['zhejiang']['hangzhou'])

// 能否通过 key 来访问 china 使之能输出 xihu
console.log( china[key] )
阅读 2.9k
3 个回答
let china = {
    zhejiang: {
        hangzhou: 'xihu'
    }
};

//改造结构
Object.keys(china).forEach(function(key){
    Object.keys(china[key]).forEach(function(subkey){
        china[subkey] = china[key][subkey];
    });
});

console.log( china['hangzhou'] );
/*
    xihu
*/

你的意思是这样?

let key = 'zhejiang';
console.log( china[key] )

还是这样?es2015允许使用变量做为key:

var b = 'foo';
var o ={
    [b] :'aa'
};
o[b]//aa

如果不是的话,直接china[key]key会因为没有定义报错吧

不能这样,除非你for...in遍历一下,输出xihu

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题