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

Song • 869次浏览 • 0个评论 • 2018-08-06 04:20:14

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
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
    公告
    中国晚上好,随时随地分享前沿科技,好吃好玩,有趣有料的新鲜事;本站可以分享资源,技术,观点,态度;同时希望大家做一个文明的分享者!
    广告
    pytorch中文网