ES6为Array增加了find(),findIndex函数。
find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。

findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。

他们的都是一个查找回调函数。

[1, 2, 3, 4].find((value, index, arr) => {})

查找函数有三个参数。

value:每一次迭代查找的数组元素。

index:每一次迭代查找的数组元素索引。

arr:被查找的数组。

1.查找元素,返回找到的值,找不到返回undefined。

const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
var ret1 = arr1.find((value, index, arr) => {return value > 4
})var ret2 = arr1.find((value, index, arr) => {return value > 14
})
console.log('%s', ret1)
console.log('%s', ret2)

结果:

5
undefined

2.查找元素,返回找到的index,找不到返回-1。

var ret3 = arr1.findIndex((value, index, arr) => {return value > 4
})var ret4 = arr1.findIndex((value, index, arr) => {return value > 14
})
console.log('%s', ret3)
console.log('%s', ret4)

结果:

4
-1

3.查找NaN。

const arr2 = [1, 2, NaN, 4, 5, 6, 7, 8, 9, 10, 11]
var ret5 = arr2.find((value, index, arr) => {return Object.is(NaN, value)
})var ret6 = arr2.findIndex((value, index, arr) => {return Object.is(NaN, value)
})
console.log('%s', ret5)
console.log('%s', ret6)

结果:

NaN
2

案例:

var active_index = this.right_height.findIndex((value, index, arr) =>(value <= scroll_top && scroll_top < arr[index + 1]&&index!=this.goods.length-1)||( index==this.goods.length-1 && value <= scroll_top));

js中find和findIndex的使用相关推荐

  1. JS中find()和findIndex()

    find() 返回数组中符合条件的第一个值,都不符合条件返回undefined. 格式:find(function(item, index, array) { - }, thisArg) item:当 ...

  2. JS中find(), findIndex(), filter(), forEach(), some(), every(), map()方法

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

  3. JS中数组查询的方法indexOf()、lastIndexOf()、includes()、find()、findIndex()、filter()、every()

    JS中涉及到数组查询的方法见下表: 方法 描述 参数 返回值 indexOf() 搜索数组中的元素,并返回它所在的位置. 要搜索的元素 ,查找的起始位置 元素第一次出现的索引 lastIndexOf( ...

  4. js中常用的数组和字符串方法

    一:js中常用的数组方法 <script>//函数声明式中的方法const arr=[1,3,6,9,15,19,16];//函数的所有方法 map(),reduce(),filter() ...

  5. JS中关于构造函数、原型链、prototype、constructor、instanceof、__proto__属性

    在Javascript不存在类(Class)的概念,javascript中不是基于类的,而是通过构造函数(constructor)和原型链(prototype chains)实现的.但是在ES6中引入 ...

  6. Js中Array对象

    Js中Array对象 JavaScript的Array对象是用于构造数组的全局对象,数组是类似于列表的高阶对象. 描述 在JavaScript中通常可以使用Array构造器与字面量的方式创建数组. c ...

  7. js数组获取index_通过事例重温一下 JS 中 常见的15 种数组操作(备忘清单),收藏...

    数组是 JS 中广泛使用的数据结构.数组对象提供了大量有用的方法,如array. forEach().array.map()等来操作数组. 在实战中,我经常对数组可能的操作和相应采用哪个更好的方法不知 ...

  8. js数组获取index_通过事例重温一下常见的 JS 中 15 种数组操作(备忘清单)

    作者:Dmitri Pavlutin 译者:前端小智 来源:dmitripavlutin.com 最近几天,公众号无套路抽奖现金 200,参与方式如下: 存而不论是一种对舆论场合的改善?(每月一次抽大 ...

  9. js中数组常用的方法总结,包括ES6

    原文地址:js中数组常用的方法总结,包括ES6 1.push() 后增 push()方法可以向数组后添加一个新的元素,并返回新数组的长度. 末尾添加,返回长度,改变原数组 var a = [1,2,3 ...

最新文章

  1. Android_Sqlbrite入门使用
  2. 9个元素换6次达到排序序列_一文带你读懂排序算法(三):堆排序算法
  3. Linux系统安装中文环境,中文帮助,中文输入法的实现
  4. SQLite 分离数据库(http://www.w3cschool.cc/sqlite/sqlite-detach-database.html)
  5. 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
  6. Java Throwable setStackTrace()方法与示例
  7. C语言 __DATE__ - C语言零基础入门教程
  8. ubuntu14操作系统chrome标签和书签乱码解决
  9. java.util.concurrent.atomic.AtomicBoolean 源码
  10. gitHub客户端的安装与使用总结
  11. 论文阅读之Siamese RPN以及一些其他内容的补充
  12. ps----高低频磨皮--------中性灰磨皮-----------双曲线磨皮
  13. Jenkins怎么发邮件,5年字节自动化大神手把手教你
  14. Flutter—— 仿自如APP裸眼3D效果
  15. 2021年度软件企业 100 强榜单(附全名单)有你么?
  16. 插件小王子的插件源码汇总
  17. 使用IPMI安装操作系统--超微服务器为例,以及ipmivier安装与使用
  18. 肝进ICU,万字真言点化八大排序——我奶奶都看得懂的算法详解
  19. 【算法千题案例】每日一练LeetCode打卡——108.独特的电子邮件地址
  20. (总)百度AI 平台API调用

热门文章

  1. Android生态系统分裂剖析 开放性系统带来的影响
  2. 解决微博SDK接入全平台支持
  3. int类型整数的表示范围
  4. 2021/1/16-每日三题第23弹:skr小机灵鬼儿 ?你知道 JavaScript 中的原型和原型链是什么吗 ???
  5. YOLOv5剪枝 | 模型剪枝理论篇
  6. 信息技术的分类方法有哪些?
  7. amd64的镜像兼容amd和intel的cpu
  8. Kria K26 SOM 在 KV260 开发板上的使用
  9. 从Word中读取内容将word转换成txt
  10. Vue Antdv 上传组件(a-upload、a-upload-dragger)二次封装(DZMAntdvUpload)