如何在JavaScript中将用双引号包裹的数组还原为原始数组

4
如何在Javascript中将此字符串转换为原始数组?
var str_arr = "["myName","asldkfjs","2342","sbc@lkjsf.com","sdlkfjskldf",410]"

我想将其作为原始数组存储回去。

var arr = ["myName","asldkfjs","2342","sbc@lkjsf.com","sdlkfjskldf",410];

1
你的第一句话中,“original”数组是什么意思? - Neo
我是说,去掉双引号。 - Umair Jameel
可能是 Safely turning a JSON string into an object 的重复问题。 - Андрей Беньковский
1
你的第一行JavaScript代码无效。你需要使用单引号或转义内部的双引号。 - trincot
2个回答

4

您的str_arr中存在语法错误。

var str_arr = '["myName","asldkfjs","2342","sbc@lkjsf.com","sdlkfjskldf",410]';
var arr = JSON.parse(str_arr);

这是否有效?意思是删除双引号并替换为单引号? - Neo
是的,在JS中双引号和单引号是相同的。 - Noam
在浏览器控制台或nodejs repl中很容易验证这一点。使用双引号开始字符串的原始帖子会导致语法错误,由于意外的标识符,第一个m将导致错误,因为前面有双引号。所以你需要小心如何初始化包含引号的字符串。 - manonthemat

3

您可以尝试将其解析为JSON,因为数组是有效的JSON(假设它使用双引号表示字符串)。

arr = JSON.parse(str_arr);

此外,正如@manonthemat所提到的,您需要使用单引号来包装声明str_arr时的字符串字面值(因为它包含双引号),或者您需要转义双引号以避免语法错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接