ES6 数组方法 find 和 findIndex 区别

  • 1. 前言
  • 2. array.find()
  • 3. array.findIndex()

1. 前言


J**aScript 的 Array 对象方法太多了,短时间内记不住的,可以每天学几个,日积月累,积少成多 !

ES6 中新增了很多实用的数组方法,array.find() 和 array.findIndex 就是其中两个

array.find() 方法用于获取数组中满足指定条件的第一个元素的值

array.findIndex() 方法用于获取数组中满足指定条件的第一个元素的索引

  1. const array = [
  2. { id: 1, name: 'tom' },
  3. { id: 2, name: 'jerry' },
  4. { id: 3, name: 'maria' },
  5. ]

2. array.find()


完整形式

  1. // item 数组元素
  2. // index 数组索引
  3. // array 当前元素所属数组
  4. // thisValue 参数1的函数体中的this指向,默认是Window对象
  5. // 注意: 其中 index, array, thisValue 都是可选参数,大多数情况下都是只使用 item
  6. array.find(function(item, index, array) { }, thisValue)

关于 thisValue 参数的用法

  1. array.find(function (item, index, array) {
  2. // 省略 thisValue 参数时, this 指向 Window 对象
  3. console.log(this)
  4. })
  5. const user = { name: 'liang' }
  6. array.find(function (item, index, array) {
  7. // 此时 this 指向 user 变量,
  8. // 特别注意: 当前函数必须为普通函数,不能用箭头函数,懂的都懂
  9. console.log(this)
  10. }, user)

最常见的用法

  1. // 查找数组元素中 name 为 jerry 元素
  2. // 找到返回该元素, 否则返回 undefined
  3. const item = array.find(item => item.name == 'jerry')

也可以传入一个函数名称,效果是一样的

  1. function jerryInfo(item) {
  2. return item.name == 'jerry';
  3. }
  4. const item = array.find(jerryInfo)

3. array.findIndex()


array.findIndex() 参数同 array.find() 一致,都是用于查找满足指定条件的数组中的第一个元素,区别是当能查找的到时, find 返回的是数组元素,findIndex 返回的是数组索引;当查找不到时,find 返回 undefined,findIndex 返回 -1

  1. const index = array.findIndex(item => item.name == 'jerry')
  2. console.log(index) // 1
  3. const index = array.findIndex(item => item.name == 'cat')
  4. console.log(index) // -1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值