java findindex_数组方法find、filter、findIndex简介

java findindex_数组方法find、filter、findIndex简介前言 ES6 提供了很多新的 API 数组对象的尤为实用 但是如果我们没有在相对应的开发环境下 很难对这些 API 有深入的了解 毕竟实践出真知 find filter findIndex 这三个方法都是对于数组的查找 其中返回的值略微相关 所以在这里做一个介绍 Array prototype find 这是一个数组原型上的方法 调用格式应该是使用数组对象来调用 该方法接收一个回调函数 callback 如

前言

ES6提供了很多新的API,数组对象的尤为实用,但是如果我们没有在相对应的开发环境下,很难对这些API有深入的了解,毕竟实践出真知。

find、filter、findIndex这三个方法都是对于数组的查找,其中返回的值略微相关,所以在这里做一个介绍。

Array.prototype.find()

这是一个数组原型上的方法,调用格式应该是使用数组对象来调用,该方法接收一个回调函数callback,如:array.find(callback)。

find方法用途是 查找符合条件的第一个数组元素

例子:

var array = [1,4,6,7,9,11,13];

//需求: 查找大于10的第一个数

function callback(elem){

return elem > 10;

}

var dayu10 = array.find(callback);

console.log(dayu10); // 11

如果找不到,返回undefined

例子:

var array = [1,4,6,7,9,11,13];

//需求: 查找大于100的第一个数

function callback(elem){

return elem > 100;

}

var dayu100 = array.find(callback);

console.log(dayu100); // undefined

很显然,这个方法比较适合用来 判断数组内是否包含某种条件的值的元素。

或者进一步扩展,查找json数组内包含某个值的对象。如下:

var array = [

{name:’xxa’,age: 15},

{name:’xxb’,age:18}

];

var xx = array.find(elem => elem.name === ‘xxa’);

console.log(xx); // {name:’xxa’,age: 15}

Array.prototype.findIndex()

作为原型上的方法,调用和参数与find相同。

顾名思义,这个对比find方法,这个方法返回的是符合条件的元素的下标index。

例子:

var array = [1,4,6,7,9,11,13];

//需求: 查找大于10的第一个数

function callback(elem){

return elem > 10;

}

var dayu10index = array.find(callback);

console.log(dayu10index); // 5

如果找不到,返回-1,这点类似字符串查找的indexOf或者正则表达式的search,总而言之,无论什么查找方法,找不到就是-1.

例子:

var array = [1,4,6,7,9,11,13];

//需求: 查找大于100的第一个数

function callback(elem){

return elem > 100;

}

var dayu100index = array.find(callback);

console.log(dayu100index); // -1

很显然,这个方法更适合用来 判断数组内是否包含某种条件的值的元素。

Array.prototype.filter()

作为原型上的方法,调用和参数如上。

filter方法,意思为过滤,同样接收一个回调函数callback,该方法的使用场景是 查找数组内符合指定条件的所有元素。

例子:

var array = [1,6,5,9,7,16,18];

//查找偶数

function callback(elem){

return elem % 2 === 0;

}

var oushu = array.filter(callback);

console.log(oushu);// [6,16,18];

该方法返回的是一个集合,即数组如果找不到,返回空数组[]。

例子:

var array = [1,6,5,9,7,16,18];

//查找大于20的数

function callback(elem){

return elem > 20;

}

var dayu20 = array.filter(callback);

console.log(dayu20);// [];

结语

这三个方法,都是对数组元素的查找,find返回第一个符合的元素的值,findIndex返回第一个符合的元素的下标,filter返回符合的元素的集合。

这三个方法都不会改变原数组的值,具有很大的相同点,所以在这里统一介绍。

相关链接 MDN web docs — Array

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209296.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午9:35
下一篇 2026年3月19日 上午9:35


相关推荐

  • web百度离线地图开发(详细教程)2019

    web百度离线地图开发(详细教程)2019web 百度离线地图开发 详细教程 需求情景主要参考开发步骤一 JSAPI 文件下载二 修改 API 文件 1 屏蔽 ak 验证 2 设置引用本地资源路径 3 下载本地资源 4 引用本地资源三 加载瓦片改为本地离线瓦片 1 存储目录 2 下载瓦片 3 瓦片配置文件 4 修改加载瓦片路径四 关于地图下载器 1 免费 付费 2 瓦片文件的大小需求情景项目在内网上使用 不得连接外网 所以需要开发离线地图功能这个项目是 vue v

    2026年3月16日
    2
  • TCP之深入浅出send和recv

    TCP之深入浅出send和recv

    2021年8月27日
    52
  • Springboot跨域的四种方式[通俗易懂]

    Springboot跨域的四种方式[通俗易懂]Springboot跨域的四种方式

    2022年4月23日
    55
  • 智能小车设计规划_智能循迹避障小车设计

    智能小车设计规划_智能循迹避障小车设计摘要该课题主要基于单片机的循迹、避障、WiFi、蓝牙等功能的智能小车,在一些特殊环境下有着特殊的意义。硬件控制以arduino为控制核心。采用超声波避障和红外避障传感器共同完成寻迹、避障功能,并将相关信号传送给单片机,经单片机控制系统分析判断后控制驱动芯片驱动直流电机实现小车前进、后退、左转、右转,停止。软件采用移植性较好的c语言编写,通过手机蓝牙App实现对智能小车的控制。通过TCP/UD协…

    2022年10月18日
    4
  • 浅谈Spring事务隔离级别

    浅谈Spring事务隔离级别浅谈 Spring 事务隔离级别一 Propagation 事务的传播属性 Propagation key 属性确定代理应该给哪个方法增加事务行为 这样的属性最重要的部份是传播行为 有以下选项可供使用 PROPAGATION REQUIRED 支持当前事务 如果当前没有事务 就新建一个事务 这是最常见的选择 PROPAGATION SUPPORTS 支持当前事务 如果当前没有

    2026年3月26日
    3
  • redis sadd存缓存

    redis sadd存缓存以 sadd 序列化后存进缓存 for Roomroom roomList Stringstrrid room getRid 获取房间 idMapparse Document parse JSON toJSONString room 转 map String String helper saveRoomI String String

    2026年3月11日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号