2013-10-22 41 views
0

我有一个以字符串形式传递的对象数组。我期望eval能够评估这个真实的数组对象,但eval没有将字符串数组计算到数组中

var arr = '"[{item:1,amount:100,quantity:1},{item:2,amount:200,quantity:2}]"'; 
console.log(eval(arr)); 

只是返回似乎是一个字符串。我使用不正确?

+1

你的字符串持有一个字符串。它完全按照你所说的去做。 – SLaks

+1

你应该使用JSON。 – SLaks

+0

@SLaks一个数组对象,其中包含具有属性项目,金额和数量的对象。 – 1252748

回答

1

你必须做一个双EVAL得到的数据作为数组

var arr = '"[{item:1,amount:100,quantity:1},{item:2,amount:200,quantity:2}]"'; 
console.log(eval(eval(arr))); 
+0

非常酷!为什么是这样? – 1252748

+0

你甚至可以在内部调用中执行'JSON.parse()':-) – Bergi

+0

*为什么是这个*因为你在字符串里面有一个字符串,就像上面说的注释一样。删除外部引号并使用'JSON.parse()'和tada,它可以工作。 – epascarello

相关问题