我一直在寻找解决方案,但我只发现了从["1","2","3"][1,2,3]的转换,但是我的问题是如何将其转换:"[1,2,3]"[1,2,3]

对你们中的许多人来说也许很清楚,但对我而言却不是。

最佳答案

有几种方法:

  • 使用已经提到的:eval("[1,2,3]")
  • 使用已经提到的:JSON.parse("[1,2,3]")您可以访问https://github.com/koldev/JsonParser并为没有这种方法的浏览器(例如IE7)获得正式的实现。
  • 使用jQuery的JSON解释器:$.parseJSON("[1,2,3]")
  • 使用函数构造函数:Function("return [1,2,3];")()
  • 使用任何构造函数:[]["filter"]["constructor"]("return [1,2,3]")()(感谢JSF*ck)

  • 最安全的选择是使用jQuery或浏览器的 native JSON包。

    记住eval是邪恶的!它允许执行任意代码。Function构造函数也是如此,但是对于这些构造函数,您可以向其中添加'return'
    如果执行eval("[1,2,3]; evil();"),将执行evil()函数,而Function("return [1,2,3]; evil();")将阻止evil()的执行。
    这不是完美的解决方案,因为仍然可以执行Function("return evil() || [1,2,3];"),并且将执行evil()。但是,在这种情况下,仅当[1,2,3]返回伪造的值(evil()""null0,...)时,才返回false

    关于javascript - 将字符串数组 "[1,2,3]"转换为Javascript中的数字数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30728877/

    10-09 07:19