关于将字符串加载到数组的问题

时间:2019-02-09 06:19:40

标签: javascript

我正在获取一组看起来像字符串格式的数组

[49,16,135],[51,16,140],[50,18,150]

现在我需要将它们保存在一个数组数组中。我尝试过

let array = [];
let str = '[49,16,135],[51,16,140],[50,18,150]';
array = str.split('[]');
    
console.log(array);

但是它只创建了一个数组,其中所有字符串都作为元素,而我需要

array = [[49,16,135],[51,16,140],[50,18,150]]

3 个答案:

答案 0 :(得分:4)

在字符串的每个结尾添加数组定界符,然后使用JSON.parse

const str = '[49,16,135],[51,16,140],[50,18,150]';
const json = '[' + str + ']';
const array = JSON.parse(json);
console.log(array);

答案 1 :(得分:2)

您错误地分割了它,在示例中,它只会分割字符串中有[]

您可以创建有效的JSON语法,然后像这样解析它,

let str = '[49,16,135],[51,16,140],[50,18,150]';
let array = JSON.parse(`[${str}]`);

console.log(array);

答案 2 :(得分:0)

另一种实现此目标的方法是使用Function构造函数。此方法使您可以“轻松”地传递数组。

const strArr = "[49,16,135],[51,16,140],[50,18,150]",
arr = Function(`return [${strArr}]`)();

console.log(arr);