繁体   English   中英

Javascript字符串到数组索引

[英]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]];
}

测试用例:

http://jsfiddle.net/2bUgD/

希望它为您提供了基础。 当然,您可以轻松地将该函数转换为“类”的原型函数,或者将其转换为内置函数的(ಠ_,),并将其设置为针对不同的对象深度动态返回值,等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM