在Javascript中将字符串转换为2维数组

时间:2013-07-11 19:48:36

标签: javascript arrays json

我有这个字符串需要转换为数组:

var string = "[[Restaurants], [Restaurants], [Restaurants], [Caterers, Foods - Take-out]]";

然后我需要能够像这样访问它的值:

var foo = arr[0];  //returns "Restaurant"
var bar = arr[3];  //returns "Caterers, Foods - Take-out"

我尝试删除第一个和最后一个字符(“[”和“]”)但是在分裂“,”时我仍然遇到问题,因为某些值在其中包含逗号。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您可以使用split方法和map方法的组合。 split创建数组,map通过返回新的Array来清理它:

var string = '[[Restaurants], [Restaurants], [Restaurants], [Caterers, Foods - Take-out]]';

var items = string.split('],').map(
    function(s) { return s.replace(/(\[\[| \[|\]\])/g, ''); }
);

http://jsfiddle.net/4LYpr/

答案 1 :(得分:1)

由于您正在拆分并尝试创建数组,首先删除第一个(“[[”)和last(“]]”),然后将字符串拆分为(“],[”)。

答案 2 :(得分:0)

易:

> a = "[[Restaurants], [Restaurants], [Restaurants], [Caterers, Foods - Take-out]]"
> b = a.slice(1).split(",")
> newB = []
> for (i=0;i < b.length;i++) {
    formatted = b[i].trim().slice(1,-2);
    newB.push(formatted);
}