为了账号安全,请及时绑定邮箱和手机立即绑定

javascript中,对于元素是对象的数组,用underscore取不到交集?why

javascript中,对于元素是对象的数组,用underscore取不到交集?why

RISEBY 2019-04-16 17:05:24
js数组:vara=[{name:'huge',age:23},{name:'lee',age:24}];varb=[{name:'huge',age:23},{name:'lee',age:24}];两个一模一样的数组,用underscore的取交集函数,结果为[]。为什么呢?
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

underscore取交集是取引用的交集吧
vara={name:'huge',age:23};
varb={name:'huge',age:23};
注意
a!==b;
因为引用的不是同一块地址噢
                            
查看完整回答
反对 回复 2019-04-16
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

这个不是underscore的问题,是你对javascript的数据类型的理解不够。
对象是属于引用类型,不是值类型,所以两个对象相等,通常是指他们指向同一个位置。
javascriptvaraa={
name:'aa',
age:'89'
}
//上面是创建了一个对象,并返回这个对象的引用(类似于C语言的指针),它其实是个类似于物理地址的东西。
varbb={
name:'aa',
age:'89'
}
//这个bb虽然看起来和aa的一样,但是创建这个对象的时候,它是使用的另一块存储空间,即返回的引用是不一样的
console.log(aa===bb);//false
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 359 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信