我有这个字符串需要转换为数组:
var string = "[[Restaurants], [Restaurants], [Restaurants], [Caterers, Foods - Take-out]]";
然后我需要能够像这样访问它的值:
var foo = arr[0]; //returns "Restaurant"
var bar = arr[3]; //returns "Caterers, Foods - Take-out"
我尝试删除第一个和最后一个字符(“[”和“]”)但是在分裂“,”时我仍然遇到问题,因为某些值在其中包含逗号。有什么想法吗?
答案 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, ''); }
);
答案 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);
}