查找数组中指定的元素

indexOf

const arr = [1, 2, 3, 4, 5, 1]

console.log(arr.indexOf(1, 0)) // 0

console.log(arr.indexOf(1, 1))  // 1

`indexOf 从数组开头查找 只能查找数组中简单数据类型 且返回对应元素的索引,如果没有则返回 -1, 如果存在多个相同只返回第一个`
`indexOf 提供两个参数`
`参数一 为需要查找的元素`
`参数二 为索引 从哪开始查找的索引 如果是 -1 则表示从末尾第一个开始查找 以此类型`

lastIndexOf

const arr = [1, 2, 3, 4, 5, 1]

console.log(arr.lastIndexOf(1)) // 5

console.log(arr.lastIndexOf(1, arr.length - 2)) // 0
`lastIndexOf 从数组末尾开始查找 只能查找数组中简单数据类型 且返回对应元素的索引,如果没有则返回 -1, 如果存在多个相同只返回第一个`
`lastIndexOf 提供两个参数`
`参数一 为需要查找的元素`
`参数二 为索引 默认为 数组的长度 - 1, 即数组的长度`

filter

const arr = [
  {
    name: '张三'
  },
  {
    name: '李四'
  }
]

const filterArr = arr.filter(e => e.name === '张三')
console.log(filterArr)  // { name: '张三' }
`filter 通过回调函数的方式查找所有符合条件的数组元素, 如果找到则返回新数组,未找到返回空数组`
`可查找数组包裹的对象和数组包裹的简单数据类型`

find

const arr = [1, 2, 3, 4, 5, 1]

const arr2 = [
  {
    name: '张三'
  },
  {
    name: '李四'
  }
]

console.log(arr.find(e => e > 1)) // 2 
console.log(arr.find(e => e.name === '张三')) // { name: '张三' }

`find 通过回调函数的方式查找符合条件的数组元素, 只返回符合条件的第一个元素, 为找到返回 undefined`

findIndex

const arr = [1, 2, 3, 4, 5, 1]

const arr2 = [
  {
    name: '张三'
  },
  {
    name: '李四'
  }
]

console.log(arr.findIndex(e => e > 1)) // 1 
console.log(arr.findIndex(e => e.name === '张三')) // 0

`find 通过回调函数的方式查找符合条件的数组元素, 只返回符合条件的第一个元素的索引, 为找到返回 -1`

includes

const arr = [1, 2, 3, 4, 5, 1]

const arr2 = [
  {
    name: '张三'
  }
]

console.log(arr.includes(1))  // true

`includes 判断数组中是否包含指定的值(简单数据类型) 如果有则返回 true 没有则false`

every

const arr = [1, 2, 3, 4, 5, 1]

const arr2 = [
  {
    name: '张三'
  }
]

console.log(arr.every(e => e > 1))  // false 

console.log(arr2.every(e => e.name === '张三')) // true

`every 通过回调函数的方式检测数组中的所有元素是否全都符合条件 返回 true 或 false `

some

const arr = [1, 2, 3, 4, 5, 1]

const arr2 = [
  {
    name: '张三'
  }
]

console.log(arr.some(e => e > 1))  // true 

console.log(arr2.some(e => e.name === '张三')) // true

`some 通过回调函数的方式检测数组是否存在有符合条件的元素 有一个就返回 true, 否则返回 false`
posted @   加利福尼亚的阳光  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示