Javascript JS:name/val对到数组
我使用的是一种一次性语言,在语法上类似于javascript,所以用这种更通用的语言回答就足够了 我有一个name/val对的列表,它是我从一个看起来像Javascript JS:name/val对到数组,javascript,arrays,list,Javascript,Arrays,List,我使用的是一种一次性语言,在语法上类似于javascript,所以用这种更通用的语言回答就足够了 我有一个name/val对的列表,它是我从一个看起来像 "n1=v1,n2=v2..." 我不确定我最初的方法是否正确。我在这种语言中使用了原语 tolist(GETstring,"=") 将名称-值对拆分到上面的列表中。也许,这是从大门进来的错误方法 这给了我 data = [["n1","v1"],["n2","v2"],...] 我正在尝试将其更改为命名数组,例如 data["n1"]=
"n1=v1,n2=v2..."
我不确定我最初的方法是否正确。我在这种语言中使用了原语
tolist(GETstring,"=")
将名称-值对拆分到上面的列表中。也许,这是从大门进来的错误方法
这给了我
data = [["n1","v1"],["n2","v2"],...]
我正在尝试将其更改为命名数组,例如
data["n1"]="v1";
data["n2"]="v2";
...
这样我就可以按名称访问项目,而不是按列表索引(因为这是非常随意的)
以这种格式获取数据的更好方法是什么。我已经尝试了包括评估在内的一些方法,但似乎没有任何效果。没有选择。您有两种方法来解决
问题
var indexes = ["test", "test2"];
var values = ["val", "val2"];
var value = values[indexes.indexOf("test2")]; // will get "val2"
0
且值为1
的嵌套数组您必须将字符串拆分,然后遍历它
var obj = {};
var originalString = "n1=v1,n2=v2";
var splitOriginalString = originalString.split(",");
for (var i = 0; i < splitOriginalString.length; i++) {
var tmpObj = splitOriginalString[i].split("=");
obj[tmpObj[0]] = tmpObj[1];
}
var obj={};
var originalString=“n1=v1,n2=v2”;
var splitOriginalString=originalString.split(“,”);
对于(变量i=0;i
如果排序不重要(或者数据可以稍后排序),并且所有键都很好地映射到字符串,请使用“普通对象”作为映射/字典。在这种情况下,在现有数据上使用循环是相当简单的,并且不需要eval
。我认为您希望使用for(var k=0;k
,因为您访问的是数组而不是对象属性。上面的代码工作正常,这不是一个好主意。例如,请参见此处:(既然使用另一种方法很容易,为什么不使用它?@Todd,我已经更新了答案,因为您提到的帖子表明,在javascript中使用数组时,处理器有时会得到错误的长度。我还没有体验到这个结果,但正如你所说,使用替代方法很容易,所以为什么不使用它呢。另外,如果对大量数据进行迭代,则使用(var i=0;…for(var i=0;…将执行得更好。谢谢,我对这一点做了一些修改,以适应语言,现在我有了一些对象对:)