JS:将字符串转换为数组

时间:2017-09-10 07:25:50

标签: javascript arrays string types type-conversion

我有这个字符串

foo = "[[0,0,0,0],[1,24,3,3],[2,24,0,3],[3,24,0,3],[4,24,19,3]]";

如何将其转换为JavaScript数组(可能没有拆分字符串,因为数组中有超过16,000个值,我想节省时间)?

3 个答案:

答案 0 :(得分:0)

您的意思是将所有子阵列合并为一个吗?如果是,您可以尝试使用以下代码段:

var foo = '[[0,0,0,0],[1,24,3,3],[2,24,0,3],[3,24,0,3],[4,24,19,3]]';

var list = JSON.parse(foo);

var combined = new Array();

for (var counter = 0; counter < list.length; counter++) {    
  for(var index = 0; index < list[counter].length; index++) { 
    combined.push(list[counter][index]);
  }
}

console.log(combined);

答案 1 :(得分:0)

您可以使用 JSON.parse 将字符串转换为数组,然后使用.concat方法将数组合并为一个。

<强>样本

var foo = "[[0,0,0,0],[1,24,3,3],[2,24,0,3],[3,24,0,3],[4,24,19,3]]";
var output = JSON.parse(foo);
var merged = [].concat.apply([], output);
console.log(merged);

答案 2 :(得分:0)

利用数组上可用的reduce函数

&#13;
&#13;
var foo = "[[0,0,0,0],[1,24,3,3],[2,24,0,3],[3,24,0,3],[4,24,19,3]]";
var nested_array = JSON.parse(foo);

var output = nested_array.reduce(function(prev, curr) {
  return prev.concat(curr);
});
console.log(output)
&#13;
&#13;
&#13;