如何在node.js中将像数组一样的数组转换为数组?

时间:2018-04-27 06:57:01

标签: javascript arrays node.js

实际上我在arraylist中从Android设备获得了node.js。但是因为它是字符串形式所以我想把它转换成array。为此我在SO中提到了很多类似的问题,但没有一个是有帮助的。我也尝试使用JSON.parse(),但没有帮助。

我正在以'[艺术,摄影,写作] 的形式获得socialList。那么如何将这种格式转换为数组呢?

代码:

var soc_arr=JSON.parse(data.societyList)
            console.log(soc_arr.length)

4 个答案:

答案 0 :(得分:4)

使用类似的东西

var array = arrayList.replace(/^\[|\]$/g, "").split(", ");

更新

@drinchev建议使用正则表达式之后。

正则表达式将char开头与' ['并以']'

结束

答案 1 :(得分:3)

此字符串无效JSON,因为它不使用""来表示字符串。

最好的方法是使用下面的方法自己解析它:



let data = '[test1, test2, test3]';
let parts = data
  .trim() // trim the initial data!
  .substr(1,data.length-2) // remove the brackets from string
  .split(',') // plit the string using the seperator ','
  .map(e=>e.trim()) // trim the results to remove spaces at start and end
  
console.log(parts);




答案 2 :(得分:2)

RegExp.match()也许



 console.log('[Art, Photography, Writing]'.match(/\w+/g))




因此match()适用于任何字符串,并将其拆分为数组元素。

答案 3 :(得分:0)

使用replacesplit。此外,使用trim()从数组元素中删除尾随和前导空格。

var str = '[Art, Photography, Writing]';
var JSONData = str.replace('[','').replace(']','').split(',').map(x => x.trim());
console.log(JSONData);