【问题标题】:JS: convert string to arrayJS:将字符串转换为数组
【发布时间】:2018-02-18 16:01:47
【问题描述】:

我有这个字符串

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

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

【问题讨论】:

  • JSON.parse 不适合你吗?
  • 这是一个字符串吗?你的意思是"[[0,0,0,0],[1,24,3,3],[2,24,0,3],[3,24,0,3],[4,24,19,3]]"(带引号)?

标签: javascript arrays string types type-conversion


【解决方案1】:

您可以使用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】:

    您的意思是将所有子数组合并为一个吗?如果是的话,你可以试试下面的sn-p:

    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);

    【讨论】:

      【解决方案3】:

      利用数组上可用的reduce函数

      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)

      【讨论】:

        猜你喜欢
        • 2014-04-08
        • 1970-01-01
        • 2022-07-21
        • 2022-11-18
        • 2023-01-12
        • 2019-03-14
        • 2019-12-17
        • 1970-01-01
        • 2017-11-27
        相关资源
        最近更新 更多