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;因为引用的不是同一块地址噢
白猪掌柜的
TA贡献1893条经验 获得超10个赞
这个不是underscore的问题,是你对javascript的数据类型的理解不够。对象是属于引用类型,不是值类型,所以两个对象相等,通常是指他们指向同一个位置。javascriptvaraa={name:'aa',age:'89'}//上面是创建了一个对象,并返回这个对象的引用(类似于C语言的指针),它其实是个类似于物理地址的东西。varbb={name:'aa',age:'89'}//这个bb虽然看起来和aa的一样,但是创建这个对象的时候,它是使用的另一块存储空间,即返回的引用是不一样的console.log(aa===bb);//false
添加回答
举报
0/150
提交
取消