我有一个以字符串形式传递的对象数组。我期望eval能够评估这个真实的数组对象,但eval没有将字符串数组计算到数组中
var arr = '"[{item:1,amount:100,quantity:1},{item:2,amount:200,quantity:2}]"';
console.log(eval(arr));
只是返回似乎是一个字符串。我使用不正确?
我有一个以字符串形式传递的对象数组。我期望eval能够评估这个真实的数组对象,但eval没有将字符串数组计算到数组中
var arr = '"[{item:1,amount:100,quantity:1},{item:2,amount:200,quantity:2}]"';
console.log(eval(arr));
只是返回似乎是一个字符串。我使用不正确?
你必须做一个双EVAL得到的数据作为数组
var arr = '"[{item:1,amount:100,quantity:1},{item:2,amount:200,quantity:2}]"';
console.log(eval(eval(arr)));
非常酷!为什么是这样? – 1252748
你甚至可以在内部调用中执行'JSON.parse()':-) – Bergi
*为什么是这个*因为你在字符串里面有一个字符串,就像上面说的注释一样。删除外部引号并使用'JSON.parse()'和tada,它可以工作。 – epascarello
你的字符串持有一个字符串。它完全按照你所说的去做。 – SLaks
你应该使用JSON。 – SLaks
@SLaks一个数组对象,其中包含具有属性项目,金额和数量的对象。 – 1252748