【坑爹】indexOf查找不到所对应Object

【坑爹问题】实际开发过程中遇到,indexOf查找不到对应Object问题。博主捣腾了好久乃至怀疑人生。PS:说白了也是自己基础不牢固,希望能帮到大家

let arr = [{name:'zhangsan'}];
let obj = {name:'zhangsan'};
let index = arr.indexOf(obj); 
// index = -1 看到这里是不是开始怀疑自己了
            
//再来个例子
let arr1 = {name:'zhangsan'}
let arr2 = {name:'zhangsan'}
let arr3 = arr1;

console.log(arr1 === arr2)
// false 
console.log(arr1 === arr3)
// true

【解决方式】把Object转化成 StringindexOf

【总结】indexOf 是对索引的值进行 === ,由于 Object是引用类型,数组元素中的Object 与变量中的 Object 不是在同一堆内存中所以 ===false 故两个不在同一堆内存中的 Object 即便是值相同indexOf索引出来的的值是 -1

【温馨提示】上文所讲述的观点如有不对的地方,欢迎各位提醒

【有趣时刻】如果昨天是明天的话那么今天就是星期五,请问文中的今天是星期几?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容