如果我有一个值数组:
['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对象中找到值
重要的是,前面不知道路径的大小所以我假设我需要遍历数组值来构建路径
答案 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