我可以将变量设置为对象的多部分属性吗?

时间:2016-10-19 13:23:41

标签: javascript variables object

我希望能够以一种方式设置一个带有变量的对象属性,这种方式允许我有时将变量设置为多部分,而将其他部分设置为单个部分。下面的代码不起作用,但我认为它说明了我想要完成的任务。

reduce

1 个答案:

答案 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;