indexOf 与 findIndex 的区别

  1. indexOf
    该方法返回可以在数组中找到给定元素的第一个索引;如果不存在,则返回-1。
    例一:
    let arr =[1,2,3];
    console.log(arr.indexOf(1));//0
    console.log(arr.indexOf(2));//1
    console.log(arr.indexOf(3));//2
    console.log(arr.indexOf(4));//-1
    例二:
    let arr1 =[“1”,“2”,“3”];
    console.log(arr1.indexOf(“1”));//0
    console.log(arr1.indexOf(“2”));//1
    console.log(arr1.indexOf(“3”));//2
    console.log(arr1.indexOf(“4”));//-1
  2. findIndex
    例一:
    返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
    const arr = [
    { id: 1 },
    { id: 2 },
    { id: 3 }
    ];
    console.log(arr.findIndex(item => item.id === 1)) // 0
    console.log(arr.findIndex(item => item.id === 2)) // 1
    console.log(arr.findIndex(item => item.id === 3)) // 2
    console.log(arr.findIndex(item => item.id === 4)) // -1
    例二:
    const rs = require("./readline-sync");
    获取用户输入
    let inpId = rs.question() - 0;
    const arr = [
    { id: 1 },
    { id: 2 },
    { id: 3 }
    ];
    console.log(arr.findIndex(item => item.id === inpId)) // 输入id为1,返回对应的下标0

两者的区别

  1. indexOf()主要是用于查找基本数据类型。例如===》获取数组中某个元素的下标。
  2. findIndex可用于查找复杂数据类型。例如===》获取数组里对象的下标。

总结:

​ indexOf()方法内部使用的是 全等运算符,如果复合数据类型例如数组里对象,全等运算符就会比较它们的内存地址,如果地址相同,等式才会成立。
因此,当遇到基本数据类型就使用indexOf查询在数组当中的下标。遇到复杂数据类型就用findIndex查询数组对象中的下标。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值