记录一下常用数组方法

86 阅读2分钟

push、unshit、pop、shift、concat基础

at(index)

好用,兼容性好,替代arr(arr.length-1)

forEach(ele,index,array)

注意 当ele时基本类型是,遍历赋值不生效
当ele是引用类型时,遍历赋值生效
不支持break

const arr1 = [1,2,3,4,5]
arr1.forEach(item=>{
  item+=1
})
console.log(arr1)//[1,2,3,4,5]

const arr2 = [1,2,3,4,5]
arr1.forEach((item,index,arr)=>{
  arr[index]+=1
})
console.log(arr2)//[2,3,4,5,6]

map(ele,index,array)

filter(ele,index,array)

reduce(pre,cur,index,arr)

四个参数,可以替换filter().map()的情况
pre:上一个结果或者初始值
cur:当前值
index:索引
arr:数组本身

entityList.reduce((pre, cur) => {
    if (cur.name !== form.value.name) {
      pre.push({
        label: cur.name, value: cur.name
      })
    }
    return pre
  }, [])

find(ele,index,array)

遍历查询,返回查到的对象或者undefined\

findIndex(ele,index,array)

遍历查询,返回查到的对象的索引值或者-1

find和findIndex是比较常见的,遍历查询第一个。当有的场景遍历查询最后一个的话可以使用findLat和findLastIndex。只是后者是2022年才发布的,兼容性差一些。

every(ele,index,array)

返回true/false 是否所有元素都满足判定条件\

some(ele,index,array)

返回true/false,只有有一个满足条件就返回true

splice(startIndex,delIndex,item1,item2...)

可添加、可删除、可替换
改变元素组,返回值是删除的元素数组或者空数组
splice(0,0,item)添加,在数组第一个位置插入item
splice(0,1)删除,删除数组第一个元素
splice(0,1,item),替换数组第一个元素为item

slice(start,end)

返回一个从start到end的新数组,不改变原数组,返回值是新数组

sort(a,b)

默认是将元素转换为字符串,然后按照它们的 UTF-16 码元值升序排序
a-b 升序
b-a 降序
a===b 保持不变

const arr1 = [1,200,5,100,19]
arr1.sort()
console.log(arr1)// [1, 100, 19, 200, 5]

const arr2 = ['vb','c','es','a']
arr2.sort()
console.log(arr2) // ['a','c','es','vb']

const arr3 = [1,200,5,100,19]
arr3.sort((a,b)=>{
  return a-b
})
console.log(arr3)// [1, 5, 19, 100, 200]

includes(ele,fromIndex)

常用于多条件判断

举例:['start','stop','running'].includes(item.status)

indexOf(ele,fromIndex)

一般适合单条件判断,个人比较喜欢includes后期如果加条件比较方便