如果我有str = "[[1,Warriors,NBA],[2,Kings,NBA],[3,Knicks,NBA]]"
怎样才能将其变成JavaScript中的数组?
一个数组,其中数组的每个元素本身就是一个数组。
可能的?
答案 0 :(得分:2)
你可以尝试我为二维数组放在一起的基本功能:
function customParse(data){
arr = []
for(var i = 0; i < str.length; i++){
if(str[i] == ','){
if(!isNaN(str[i-1])){
arr.push(',')
arr.push('"')
}else{
if(str[i-1] != "]"){
arr.push('"')
arr.push(',')
arr.push('"')
}else{
arr.push(',')
}
}
}else{
if(str[i] == ']' && str[i-1] != ']'){
arr.push('"')
}
arr.push(str[i])
}
}
return JSON.parse(arr.join(""))
}
str = "[[1,Warriors,NBA],[2,Kings,NBA],[3,Knicks,NBA]]"
result = customParse(str)
alert("Raw: "+result);
alert("Stringified: "+JSON.stringify(result));
&#13;
答案 1 :(得分:2)
var str = "[[1,Warriors,NBA],[2,Kings,NBA],[3,Knicks,NBA]]";
var cleanStr = str.substring(1,str.length-1)
var matches = [];
var pattern = /\[(.*?)\]/g;
var match;
while ((match = pattern.exec(cleanStr)) != null)
{
matches.push(match[1].split(","));
}
此外,如果您有选项,只需在javascript中定义数组。
var list = [[1,'Warriors','NBA'],['2','Kings','NBA'],[3,'Knicks','NBA']];
答案 2 :(得分:0)
有一些用javascript编写的javascript解析器。请参阅:JavaScript parser in JavaScript,此:https://github.com/mishoo/UglifyJS,此:http://esprima.org/,此:http://marijnhaverbeke.nl/acorn/。
答案 3 :(得分:0)
var array = JSON.parse("[" + str + "]");
或者你可以使用.split()
,这也会得到一个字符串数组。