JS- 数组的方法

可利用以下几种方式清空数组: 直接赋空值,改变数组长度为0,splice(0), 循环pop/shift
直接赋空值与改变数组长度为0区别:前者只清空当前数组,与之赋值之前的数组不会被清空,而后者都会被清空


image.png

image.png


增 在首尾增加元素用unshift /push
删 在首尾删除元素用shift/pop 删除指定起始下标位置元素用slice
改 替换指定索引起 N个元素用splice
查 find findIndexOf indexof lastIndexOf includes
切 取片段元素用slice


  1. push在尾部追加元素(入栈),返回新的长度
  2. pop 删除尾部元素(出栈),返回当前删除的元素
image.png
  1. unshift 在头部添加元素(入栈),返回的新的长度
  2. shift删除头部元素,并返回删除的元素
image.png
  1. fill对已有数组进行填充,可指定填充的索引位置范围


    image.png

5.slice对数组进行截取 包前不包后,不改变原有数据,返回截取到的元素
(slice意思:切一片 切片)


image.png

6.splice删除元素,并数组指定位置加入新元素,改变原数组,返回删掉的元素,
splice(开始下标,截取个数,元素1,元素2...)
splice:拼接 粘接


image.png
image.png
  1. find数组中是否包含指定元素,查找到第一个指定元素就返回元素,没有就返回undefined.
    参数为回调函数
    适用于引用类型查找


    image.png
  2. findIndex数组中是否包含指定元素,查找到就返回元素索引,没有就返回-1
    参数为回调函数
    适用于引用类型查找


    image.png

9.includes查找数组中是否包含指定元素,包含就返回true,否则就返回false


image.png
  1. indexOf从数组开始或者指定位置,正向查找指定元素,如果找到则返回该元素对应的索引,否则返回-1
image.png

11.lastIndexOf从数组结尾或指定位置,反向查找指定元素,如果找到则返回该元素对应的索引,否则返回-1

image.png

12.every()判断数组每一项是否都满足指定的条件,如都满足返回true,否则返回false
13.some()判断数组某一项是否都满足指定的条件,如满足返回true,否则返回false

14.filter()过滤满足指定条件的数组,返回结果仍然是数组

15.map()对已有数组进行二次加工,返回结果为加工后的新数组

当原数组的成员为引用类型时,加工后原数组也发生变化了,如果不希望改变原数组,可采用Object.assign,扩展运算符(...)生成新成员

16.reduce() 利用reduce对数组进行累积操作,即将上一次对数组项的操作结果作为下次循环的初始值。


image.png
const array = [1, 2, 2, 3, 4, 5, 60]
//利用reduce计算指定元素重复出现的次数
function getRepeatCount(array, elem) {
    return array.reduce((pre, curr, currIn, arry) => {
        debugger
        if (curr === elem) {
            pre += 1
        }
        return pre
    }, 0)
}
console.log(getRepeatCount(array, 2))
// 去除数组中重复的元素
const nums4 = [1, 2, 3, 1, 1, 2]
const arr = nums4.reduce((pre, cur) => {
    if (!pre.includes(cur)) {
        pre.push(cur)
    }
    return pre
}, [])
console.log(arr)  // 1,2,3

你可能感兴趣的:(JS- 数组的方法)