es6 数组实例中的find() 和 findIndex() 方法.md

es6 对数组扩展了两个查找用的方法
1.find()
find()方法用于找出第一个符合条件的数组成员,他的参数是一个回调函数,所有数组成员一次执行这个回调函数,知道找出第一个返回值为true的成员,然后返回该成员,如果没有符合条件的成员,就返回undefined
例:找出数组中小于0的成员

[1,2,-4,6].find((n) =>  n < 0)
// -4
```‘

```javascript
[1,5,15,20,25].find((value,index,arr) => {
    return value > 20;
})    // 25

上面代码中,find方法接受是三个参数,依次为当前成员,当前位置和原数组。

2.findIndex()
findIndex()的方法与find()类似,返回第一个符合条件的数组成员的位置,如果所有的成员都不符合条件,就返回-1

[5,10,15,20].findIndex((value,index,arr) => {
    return value > 10
})  // 2

find()和findIndex()这两个方法都可以接受第二个参数,用来绑定回调函数this对象
另外,这两个方法都可以发现NaN,你补了数组的indexOf方法的不足

[NaN].indexOf(NaN)  // -1
 
[1,NaN].findIndex(n => Object.is(NaN,n) )    // 1
posted @ 2017-07-14 16:19  little小龙女  阅读(5177)  评论(0编辑  收藏  举报