我有一个从JSON文件导入的javascript数组,如:(让我们称之为jsonArray
)
"0": {
"0":{
Variables
},
"1":{
Variables
}
},
"1": {
"0":{
Variables
},
"1":{
Variables
},
"2":{
Variables
},
"3":{
Variables
}
}
在函数中,我希望能够传递字符串,如:
"1:2" or "1" or "0:0"
然后我可以拆分:
function myFunction(a) {
var b = a.split(":");
var c = ...
}
我希望能够使用该函数参数中的值来访问jsonArray
。
例如:
When I call myFunction("1:2"); this should happen: var c = jsonArray[1][2]
or myFunction("1"); --> var c = jsonArray[1]
我该怎么做才能实现这一目标?或者什么是获得这个结果的更好方法?
答案 0 :(得分:2)
试试这个:
function myFunction(a) {
var b = a.split(":");
var c = myObject;
for(var i = 0; i < b.length; i++){
c = c[b[i]];
}
return c;
}
答案 1 :(得分:0)
类似的东西应该有效(未经测试):
function myFunction (compositeKey){
var keySplits = compositeKey.split(":");
var scope = jsonArray;
for (var n in keySplits){
if (typeof scope[keySplits[n]] == "undefined"){
return null;
}
scope = scope[keySplits[n]];
}
return scope;
}
myFunction("1:2");
答案 2 :(得分:0)
这可能会让你开始,虽然我将JSON简化为一个级别:
var data = [{'variable':'variable','variable':'variable'}];
var myFn = function(a, b){
return a[b[0]][b[2]];
}
测试用例:
希望它为您提供工作基础。当然,您可以非常轻松地将该功能转换为&#34;类的原型功能。或(ಠ_ಠ)用于内置,并将其设置为动态返回不同对象深度等值。