将数组格式的字符串转换成数组

187 阅读1分钟

由于数据传输的原因,有时我们得到的是字符串形式的数组(比如:str='["a","b","c","d"]',写成str="['a', 'b', 'c', 'd']",使用JSON.parse()的时候会报错)。要将这种字符串还原成数组对象,有如下两种方法。

1,使用 eval() 函数转换

(1)eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。我们可以借助它来将字符串还原成数组。

const str = '["a", "b", "c", "d"]';
const arr =  eval('(' + str + ')');


console.log(str)    // '["a", "b", "c", "d"]'
console.log(arr)    // ["a", "b", "c", "d"]

2,使用 JSON.parse() 方法转换

(1)由于数组的类型也是对象,因此我们也可以用 JSON.parse() 方法将数组转换成对象。

const str = '["a", "b", "c", "d"]';
const arr =  JSON.parse(str);


console.log(str)    // '["a", "b", "c", "d"]'
console.log(arr)    // ["a", "b", "c", "d"]

当str="['a', 'b', 'c', 'd']"时,JSON.parse()报错

js中eval函数有什么用

eval()函数用于计算JavaScript字符串,并把它作为脚本代码来执行。如果参数是一个表达式,eval()函数将执行表达式。如果参数是Javascript语句,eval()将执行Javascript 语句。

语法

1eval(string)

参数:

● string:必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

说明: 所有主要浏览器都支持 eval() 函数

示例:

12345<script>``eval(``"x=10;y=20;console.log(x*y)"``);``console.log(eval(``"2+2"``));``console.log(eval(``"x+17"``));``</script>

输出:

123200``4``27

1.jpg