Js中的find,findIndex,indexof,includes

概述

js中的find,findIndex,indexof,includes都可以用来查找数组中的某一项,今天来对比一下. 测试代码地址 github.com/fanxuewen/e…

一、find

find是用来查找满足条件的第一项,找到了就返回,找不到返回undefined.该方法不会改变原数组。使用方法如下

var findArr = [1, 2, 3, 4];
var res1 = findArr.find(item => {
    return item > 2;
})
var res2 = findArr.find(item => {
    return item > 10;
})
console.log('res1', res1);
console.log('res2', res2);
复制代码

find还有一个比较牛逼的地方,就是不会跳过空项,像map,filter等则会跳过

var findArr1 = [1, , 3];
console.log('--------find---------');
var res1 = findArr1.find((item, index) => {
    console.log(item, '----', index)
})
console.log('--------map---------');
findArr1.map((item, index) => {
    console.log(item, '----', index);
})

复制代码

二、findIndex

findIndex是用来查找满足条件的第一项索引,找到了就返回该索引,找不到返回-1.

var findIndexArr = [1, 2, 3, 4];
var res1 = findIndexArr.findIndex(item => {
    return item > 2;
})
var res2 = findIndexArr.findIndex(item => {
    return item > 10;
})
console.log('res1', res1);
console.log('res2', res2);
//res1 2
//res2 -1
复制代码

三、indexof

indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
语法:arr.indexOf(searchElement[, startIndex = 0]) startIndex代表搜素的起始位置默认为0,可选,

var indexOfArr = [1, 2, 3, 4];
indexOfArr.indexOf(2)  //1
indexOfArr.indexOf(2,2)//-1
indexOfArr.indexOf(9)  //-1
复制代码

四、includes

includes() 方法用来判断一个数组是否包含一个指定的值,有则返回 true,否则返回false。

    var includesArr = [1, 2, 3, 4];
    includesArr.indexOf(2)  //true
    includesArr.indexOf(9)  //false
复制代码

五、总结

判断数组中存在某项要用indexof/includes

转载于:https://juejin.im/post/5cb025d4f265da03a85aaffb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值