让板砖飞丶 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条)

报告相同问题?

悬赏问题

  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流
  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积