使用数组值作为对象字段名称

时间:2013-11-23 03:25:32

标签: javascript

如果我有一个数组且一个对象是否可以使用数组值作为字段名来获取对象字段值?

像这样:

var x = ['foo', 'bar'],
    y = {
        foo: 'foo,foo',
        bar: 'bar,bar'
    }

for (var i = 0, l = x.length; i < l; i++) {
    console.log(y.x[i]);
    // Uncaught TypeError: Cannot read property '0' of undefined 
}

除此之外,这不起作用。

Demo

更新

如果其中一个对象字段是如下方法,那该怎么办?

y = {
    foo: 'foo,foo',
    bar: function () {
        alert('');
    }
}

1 个答案:

答案 0 :(得分:4)

在处理变量键时需要使用bracket notation

console.log(y[x[i]]); 

演示:Fiddle

y.x[i]尝试读取x的{​​{1}}属性,该属性不会退出,因此y会抛出错误。