es6多维数组find()和findIndex()使用方法详解

Song2759 次浏览0个评论2018年08月06日

JS中我们常常需要对数组/多维数组进行查询,穿透的方法都不够方便,所以我们来看看find()findIndex()使用方法详解

一、Find方法

find方法用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员然后返回该成员,否则返回undefined

var array = [{"id":"1","name":"姓名1"},{"id":"2","name":"姓名2"},{"id":"3","name":"姓名3"}];

var result = array.find(function(value, index, arr) {
    return value.id === 1;
})
# 输出{"id":"1","name":"姓名1"}

上面代码中,find方法的回调函数可以接受三个参数:

  • value: 当前的数组的值
  • index: 当前的位置
  • arr: 原数组

二、findIndex方法

findIndex方法与find方法非常类似;返回第一个符合条件的数组成员的位置;如果所有成员都不符合条件,则返回-1

array.findIndex(function(value, index, arr) {
    return value.id > 2;
})
# 输出{"id":"3","name":"姓名3"}

两个方法都可以接受第二个参数,用来绑定回调函数的this对象;另外,这两个方法都可以发现NaN,弥补了数组的IndexOf方法的不足。

[NaN].indexOf(NaN)
// -1
[NaN].findIndex(y => Object.is(NaN, y))
// 0

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...