本帖最后由 s000rd 于 2010-05-07 17:06:47 编辑

解决方案 »

  1.   

     if(eval(a)==b.join(","))
     {
        alert("1")
     }
      

  2.   

    var a = "[{x:1,y:2},{x:3,y:4}]"
    var b = eval('('+a+')');
      

  3.   

    谢谢,但这个是将b转为a,我要的效果是想将a转为b
      

  4.   

    var a = [{x:1,y:2},{x:3,y:4}]
    var b = [{x:1,y:2},{x:3,y:4}]
    alert(a==b)
    这样出来的也是false的,对象是按地址引用,不是按值。与是否eval无关。
      

  5.   

    之所以b 与 eval(a) 不相等,
    是因为这是两个对象,本来就不可能相等的
    你可以试下
    var a = [{x:1,y:2},{x:3,y:4}]
    var b = [{x:1,y:2},{x:3,y:4}]
    比较一下a与b是否相等,你就应该知道了如果只是想把字符串转化为对象
    2#的方法就可以了
      

  6.   

    <script>
    var a = "[{x:1,y:2},{x:3,y:4}]"
    var b = [{x:1,y:2},{x:3,y:4}]
    a = eval(a)
    alert(a[0].x)
    alert(a[0].y)
    alert(a[1].x)
    alert(a[1].x)
    </script>与b是相同的