2

我有这个结构:

var data = {
    'horizontal':{
         'static':[1,3,5,7,9],
         'dynamic':[2,4,6,8]
    },
    'vertical':{
         'static':[1,3,5,7,9],
         'dynamic':[2,4,6,8]
    }
};

我有这个 HTML 对象:

Direction:
<select id="direction">
    <option value="horizontal">Horizontal</option>
    <option value="vertictal">Vertictal</option>
</select>

Type:
<select id="mytype">
    <option value="static">Static</option>
    <option value="dynamic">Dynamic</option>
</select>

我可以data.horizontal.static[2]像这样访问吗?

var result = data.[ $('#direction').val() ].[ $('#mytype').val() ][2];

有什么办法吗?

4

3 回答 3

1

你的语法很接近......你需要:

var result = data[ $('#direction').val() ][ $('#mytype').val() ][2];

注意(方括号之间没有句点)

于 2013-04-17T13:56:21.967 回答
1

尝试删除点

var result = data[ $('#direction').val() ][ $('#mytype').val() ][2];
于 2013-04-17T13:57:27.783 回答
0

不确定您在这里想要什么值,但这是您访问值的方式:

console.log(data['horizontal']);
console.log(data['horizontal']['static']);
console.log(data['horizontal']['static'][2]);

小提琴:

http://jsfiddle.net/jj49G/

于 2013-04-17T13:56:58.323 回答