将字符串更改为数组

时间:2018-01-25 10:29:49

标签: javascript json typescript angular5

我是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]'
    }
]

2 个答案:

答案 0 :(得分:1)

这是我的解决方案

您可以删除第一个和最后一个字符以获取“1,2,3,4”,然后使用拆分将其转换为数组

代码评论很好,花点时间逐行理解;

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)

答案 1 :(得分: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只是将该数组与该对象的其余部分内联。