猿问

js里不用eval如何把字符串转成数组?有什么更好的方法吗?

需要把一个字符串转成数组,字符串通过后端生成的格式。

var data = "[{id:'1',txt:'1',others:['1','2','3']},{id:'1',txt:'1',others:['1','2','3']}]"

//为了方便阅读:

//var data = '[

//    {

//        id:'1',

//        txt:'1',

//        others:['1','2','3']

//    },

//    {

//        id:'1',

//        txt:'1',

//        others:['1','2','3']

//    }

//]'

//目前我的方法是:

var newData = eval("("+data+")")

console.log(newData.id)

有没有什么更好的方案?

ITMISS
浏览 784回答 1
1回答

四季花海

如果你要兼容低版本的浏览器可以这样写var newData =(new Function("return "+data))();如果不需要考虑,同上可以使用JSON.parse(data);让后端成[{"id":"1","txt":"1","others":["1","2","3"]},{"id":"1","txt":"1","others":["1","2","3"]}]这种正确的json string给你
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答