JS:名称/ val对数组

时间:2013-10-15 18:06:05

标签: javascript arrays list

我在语法中使用类似于javascript的一次性语言,所以用这种更常用的语言来回答就足够了。

我有一个名称/值对的列表,我是从一个看起来像

的大GET字符串构建的
"n1=v1,n2=v2..."

我不确定我的初步方法是否正确。我用这种语言中的原语

tolist(GETstring,"=")

将名称值对拆分为上面的列表。也许,这是从大门出发的错误做法。

这给了我

data = [["n1","v1"],["n2","v2"],...]

我正在尝试将其更改为命名数组,例如

data["n1"]="v1";
data["n2"]="v2";
...

这样我就可以按名称访问项目,而不是按列表索引访问(因为它是高度的)

以这种格式获取数据的更好方法是什么?我尝试过一些包括逃避的东西,但似乎没什么用。

2 个答案:

答案 0 :(得分:2)

你必须将字符串拆分,然后迭代它。

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

答案 1 :(得分:0)

没有选择这样做。你有两种方法workaround

  1. 创建两个数组,一个用于键,另一个用于值。

    var indexes = ["test", "test2"];
    var values = ["val", "val2"];
    var value = values[indexes.indexOf("test2")]; // will get "val2"
  2. 为您的字符串键创建包含键0的嵌套数组,并为其值创建1