我是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]'
}
]
答案 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
只是将该数组与该对象的其余部分内联。