让板砖飞丶 2017-10-15 04:04 采纳率: 0%
浏览 1085
已采纳

对象数组和数组中赋值对象的比较不相等

var person={name:"wang"};
var people=[{name:"wang"}];
var morepeople=[person];

console.log(morepeople==people) //false

为什么people和morepeople的值不想等

  • 写回答

5条回答 默认 最新

  • 愚公码农 2017-10-15 05:01
    关注

    因为JavaScript里面Array是对象,==或===操作符只能比较两个对象是否是同一个实例,也就是是否是同一个对象引用。目前JavaScript没有内置的
    操作符判断对象的内容是否相同。
    在网上流传很普遍的一种做法是将数组转换成字符串:
    JSON.stringify(a1) == JSON.stringify(a2) 或 a1.toString() == a2.toString();但是不推荐这么操作呢,因为字符串“1”和数字1转化为String之后,
    比较仍然会相等哦。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?