从字符串创建多维数组[重复]

Posted

技术标签:

【中文标题】从字符串创建多维数组[重复]【英文标题】:Create multidimensional array from string [duplicate] 【发布时间】:2012-10-05 04:01:00 【问题描述】:

可能重复:Parse query string in javascript

我想从一个字符串创建一个选项数组。我怎样才能创建一个数组作为


    width : 100, 
    height : 200

来自类似的字符串

'width=100&height=200'

有没有创建这样的数组?

【问题讨论】:

What have you tried? 【参考方案1】:

这不是一个数组,它是一个对象。它也不是多维的。

但无论如何,您可以在& 分隔符上拆分字符串,然后在= 上拆分每个项目:

var input = 'width=100&height=200',
    output = ,
    working = input.split("&"),
    current,
    i;

for (i=0; i < working.length; i++)
    current = working[i].split("=");
    output[current[0]] = current[1];


// output is now the object you described.

当然,这不会验证输入字符串,并且不会满足同一属性出现多次的情况(在这种情况下,您可能希望创建一个值数组),但它应该可以帮助您入门。将上述内容封装在一个函数中会很好,但我留给读者作为练习......

【讨论】:

原始字符串看起来像来自URI的查询字符串,在这种情况下也需要处理转义。 @RaymondChen - 是的,当然。这属于“读者练习”类别。【参考方案2】:

试试这个:

JSON.parse('"' + decodeURI(myString.replace(/&/g, "\",\"").replace(/=/g,"\":\"")) + '"')

【讨论】:

以上是关于从字符串创建多维数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用组节点从多维子数组创建字符串

多维数组到多维 SimpleXMLElement(XML 对象)[重复]

javascript创建多维数组语法[重复]

从多维数组中删除数组的最有效方法[重复]

C#多维数组转换成数组[重复]

PHP:删除多维数组中的空数组字符串[重复]