[英]Javascript string to array index
我有一个从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]
我该怎么做才能做到这一点? 或获得此结果的更好方法是什么?
尝试这个:
function myFunction(a) {
var b = a.split(":");
var c = myObject;
for(var i = 0; i < b.length; i++){
c = c[b[i]];
}
return c;
}
像这样的东西应该工作(未经测试):
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");
这可能会让您入门,尽管我将JSON简化为一个级别:
var data = [{'variable':'variable','variable':'variable'}];
var myFn = function(a, b){
return a[b[0]][b[2]];
}
测试用例:
希望它为您提供了基础。 当然,您可以轻松地将该函数转换为“类”的原型函数,或者将其转换为内置函数的(ಠ_,),并将其设置为针对不同的对象深度动态返回值,等等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.