我希望能够以一种方式设置一个带有变量的对象属性,这种方式允许我有时将变量设置为多部分,而将其他部分设置为单个部分。下面的代码不起作用,但我认为它说明了我想要完成的任务。
reduce
答案 0 :(得分:2)
How about this.
Object.prototype.select = function(route) {
var newObj = this;
route.forEach(function(key) {
newObj = newObj[key];
});
return newObj;
};
You can use the above method like so.
var mekBldr = {
mecha: {
rightLimbs: {
legs: {
rightleg01: {
cost: 0,
classification: ''
}
}
},
leftLimbs: {
legs: {
leftleg01: {
cost: 0,
classification: ''
}
}
}
}
};
var part1 = 'leftLimbs';
var part2 = 'legs';
var multi = [part1, part2];
mekBldr.mecha.select(multi).leftleg01.cost = 5;