将字符串更改为数组

Posted

技术标签:

【中文标题】将字符串更改为数组【英文标题】: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]'
    
]

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于将字符串更改为数组的主要内容,如果未能解决你的问题,请参考以下文章

将字符串更改为 Char 数组

如何将(四舍五入)浮点数数组更改为字符串数组python

如何将python字符串更改为无符号字符数组?

MongoDB如何将数组中的字段类型从字符串更改为数组并保持原始值

PySpark DataFrame在使用explode之前将字符串的列更改为数组

如何将日期格式从对象的猫鼬数组更改为 ejs 视图上的字符串?