javascript - 根据数组值选择json对象项

时间:2014-04-12 13:51:43

标签: javascript

如果我有一个值数组:

['test1', 'test2', 'test3']

和一个json对象:

var tester = {'test1' : 'test 1 value', 'test2' : 'test 2 value' }

如何使用数组值作为json对象的选择器。

我试过了:tester.myarray[0]

但显然没有用。

编辑:

此外,我可能需要使用嵌套值,如:

 var myArray = ['test1', 'test2']

 var tester = {'test1' : { 'test2' : 'test 1/2 value'}}

所以在这个例子中我有一个数组myArray,它基本上包含了在json对象中找到值的路径。即tester.test1.test2

我希望基于数组能够在json对象中找到值

重要的是,前面不知道路径的大小所以我假设我需要遍历数组值来构建路径

2 个答案:

答案 0 :(得分:3)

我相信这是你正在寻找的表达方式。

tester[myarray[0]]

答案 1 :(得分:1)

您可以使用Array.prototype.map从对象中获取相应的元素

var array1 = ['test1', 'test2', 'test3'],
    tester = {'test1' : 'test 1 value', 'test2' : 'test 2 value' };

console.log(array1.map(function(currentKey) {
    return tester[currentKey];
}));
# [ 'test 1 value', 'test 2 value', undefined ]

编辑:根据您的最新编辑,如果您想从嵌套结构中获取数据,可以使用Array.prototype.reduce这样做

console.log(myArray.reduce(function(result, current) {
    return result[current];
}, tester));
# test 1/2 value