【问题标题】:Change string into array将字符串更改为数组
【发布时间】:2018-07-04 13:44:05
【问题描述】:

我是 Angular 和 TS 的初学者。
我想获得像 [1,2,3,4] 这样的整数数组,但是 jasper 服务器将输出作为字符串 "[1,2,3,4]"
那么我如何使用 Type Script 来更改它。

数据:

[
    {  
       LABEL:'CR FAILURE MESSAGES',
       DATASET:'[3,3,10,15,21,35,35,81]'
    },
    {  
       LABEL:'CR SUCCESS MESSAGES',
       DATASET:'[1,4,31,34,63,78,219,312,1076]'
    },
    {  
       LABEL:'CR TOTAL MESSAGES',
       DATASET:'[4,7,55,66,93,98,300,312,1086]'
    },
    {  
       LABEL:'PR FAILURE MESSAGES',
       DATASET:'[2,5,6,12,18,19,23,48]'
    },
    {  
       LABEL:'PR SUCCESS MESSAGES',
       DATASET:'[4,5,10,22,32,65,101,139]'
    }
]

【问题讨论】:

    标签: javascript json typescript angular5


    【解决方案1】:

    您可以使用 JSON.parse 为您执行此操作。

    let obj = {
        "LABEL":"CR FAILURE MESSAGES",
        "DATASET":"[3,3,10,13,21,35,35,81]"
    };
    
    let datasetArray = JSON.parse(obj.DATASET); // Generates the array
    console.log(datasetArray);

    你得到一个包含在字符串中的数组有什么原因吗?如果服务器只返回一个字符串化的 JSON 对象,我希望在整个事情上调用 JSON.parse 只会构建与对象的其余部分内联的数组。

    【讨论】:

    • 你能检查一下吗
    • 您应该能够在数组上扩展相同的方法。只需在每个 DATASET 字段上调用 ​​JSON.parse
    【解决方案2】:

    这是我的解决方案

    您可以删除第一个和最后一个字符以获得“1,2,3,4”,然后使用split将其变成数组

    代码注释很好,慢慢来逐行理解;

    var input = "[3,3,10,13,21,35,35,81]"
    console.log(input)
    
    //cleaning the input
    var cinput = input.substr(1).slice(0, -1);
    console.log(cinput)
    //using split to turn it into an array by using the ',' as seperator
    var output = cinput.split(',')
    //the result
    console.log(output)
    var parsedarray = []
    
    //to parse each array element to int
    for (var i = 0, len = output.length; i < len; i++) {
      parsedarray[i] = parseInt(output[i]);
    }
    //parsed numbers inside the array
    console.log(parsedarray)

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 2021-10-20
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 2014-10-29
      相关资源
      最近更新 更多