假设该字符串为:
var string = 'abcd';
//I split the string by characters
var keys = string.split(''); // that return ['a','b','c','d'];
现在我有了一个这样的对象:
var object = {
a:{
b:{
c:{
d:{
}
}
}
}
}
如何从keys
数组中以编程方式构建类似:object['a']['b']['c']['d']
;
发布于 2018-07-28 05:47:30
使用reduce
,将当前嵌套对象作为累加器传递(基对象作为初始值):
var object = {
a:{
b:{
c:{
d:{
foo: 'bar'
}
}
}
}
};
var string = 'abcd';
var keys = string.split('');
console.log(
keys.reduce((a, key) => a[key], object)
);
发布于 2018-07-28 05:50:29
我认为您可以反转数组,并保持设置父子对象
var string = 'abcd';
var arr = string.split('');
var result = arr.reverse().reduce(function(obj, key) {
var o = {};
o[key] = obj;
return o;
}, {});
https://stackoverflow.com/questions/51565910
复制相似问题