JavaScript中数组常用方法--第二弹

132 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情 >>

数组常用方法2.0

在上一篇文章中,我们讲到数组的添加/删除元素的方法,这里我们接着讲述数组的查找元素的方法。

数组中搜索元素

indexOf/lastIndexOf与includes

indexOf() 方法可以返回某个指定的元素在数组中首次出现的位置,如果不存在,则返回 -1。

indexOf(元素, [fromIndex = 0])
  • 元素:指定的元素。(也就是我们需要查找的元素)
  • formIndex:指定的起始位置。(默认为 0),位置为数组的下标。

lastIndexOf() 方法可以返回某个指定的元素在数组中最后出现的位置,如果不存在,则返回 -1。

lastIndexOf(元素, [fromIndex = array.length - 1])
  • 元素:指定的元素。(也就是我们需要查找的元素)
  • formIndex:指定的起始位置。(默认为数组的长度 - 1),位置为数组的下标。(此时查找方向为从后往前)

includes() 方法可以判断某个指定的元素是否存在于数组中,如果存在,则返回 true,否则返回 false。

includes(元素, [fromIndex = 0])
  • 元素:指定的元素。(也就是我们需要查找的元素)
  • formIndex:指定的起始位置。(默认为 0),位置为数组的下标。

find/findIndex/findLastIndex

当我们需要查找一个对象数组中的元素,我们应该如何找到特定对象的元素呢?

这时候就可以使用arr.find语法,它可以返回第一个符合条件的元素。

find() 方法可以在数组中找到第一个符合条件的元素,如果没有找到,则返回 undefined。

let result = arr.find(function(item,index,array)){
    //如果返回true,则返回该元素,并停止迭代。
    //对于假值的情况(false),否则返回undefined
}
  • item:当前遍历的元素。
  • index:当前遍历的元素的索引。
  • array:当前遍历的数组。(也就是数组本省)

arr.findIndex()方法与find()方法类似,只不过它返回符合条件的元素的索引,而不是返回元素本身。

arr.findLastIndex()方法与findIndex()方法类似,只不过它是从右向左搜索,有点类似于lastIndexOf

filter

filter() 方法返回一个由所有符合条件的元素组成的新数组。

find方法和filter方法的区别在于,find方法只返回第一个符合条件的元素,而filter方法返回所有符合条件的元素(数组形式)。

let results = arr.filter(function(item, index, array) {
    // 如果 true,那么 item 被 push 到 results,迭代继续
    // 如果什么都没找到,则返回空数组
});