数组常用的方法

123 阅读3分钟

1. 添加/删除元素

  • push()
    在数组末尾添加一个或多个元素,返回新数组的长度。

    let arr = [1, 2, 3];
    arr.push(4); // arr = [1, 2, 3, 4]
    
  • pop()
    删除数组的最后一个元素,并返回该元素。

    let arr = [1, 2, 3];
    let last = arr.pop(); // last = 3, arr = [1, 2]
    
  • unshift()
    在数组开头添加一个或多个元素,返回新数组的长度。

    let arr = [1, 2, 3];
    arr.unshift(0); // arr = [0, 1, 2, 3]
    
  • shift()
    删除数组的第一个元素,并返回该元素。

    let arr = [1, 2, 3];
    let first = arr.shift(); // first = 1, arr = [2, 3]
    

2. 数组操作

  • concat()
    合并两个或多个数组,返回一个新数组。

    let arr1 = [1, 2];
    let arr2 = [3, 4];
    let newArr = arr1.concat(arr2); // newArr = [1, 2, 3, 4]
    
  • slice()
    返回数组的一部分(浅拷贝),不修改原数组。

    let arr = [1, 2, 3, 4];
    let subArr = arr.slice(1, 3); // subArr = [2, 3]
    
  • splice()
    添加或删除数组中的元素,返回被删除的元素。

    let arr = [1, 2, 3, 4];
    arr.splice(1, 2, 'a', 'b'); // arr = [1, 'a', 'b', 4]
    

3. 遍历数组

  • forEach()
    对数组的每个元素执行一次回调函数。

    javascript

    复制

    let arr = [1, 2, 3];
    arr.forEach(item => console.log(item)); // 输出 1, 2, 3
    
  • map()
    对数组的每个元素执行回调函数,返回一个新数组。

    let arr = [1, 2, 3];
    let newArr = arr.map(item => item * 2); // newArr = [2, 4, 6]
    
  • filter()
    返回满足条件的元素组成的新数组。

    let arr = [1, 2, 3, 4];
    let filtered = arr.filter(item => item > 2); // filtered = [3, 4]
    
  • reduce()
    对数组中的每个元素执行回调函数,返回一个累加结果。

    let arr = [1, 2, 3, 4];
    let sum = arr.reduce((acc, item) => acc + item, 0); // sum = 10
    
  • find()
    返回数组中第一个满足条件的元素,否则返回undefined

    let arr = [1, 2, 3, 4];
    let result = arr.find(item => item > 2); // result = 3
    
  • findIndex()
    返回数组中第一个满足条件的元素的索引,否则返回-1

    let arr = [1, 2, 3, 4];
    let index = arr.findIndex(item => item > 2); // index = 2
    

4. 查找和判断

  • includes()
    判断数组是否包含某个值,返回布尔值。

    let arr = [1, 2, 3];
    let hasTwo = arr.includes(2); // hasTwo = true
    
  • indexOf()
    返回数组中某个值的第一个索引,如果不存在则返回-1

    let arr = [1, 2, 3];
    let index = arr.indexOf(2); // index = 1
    
  • lastIndexOf()
    返回数组中某个值的最后一个索引,如果不存在则返回-1

    let arr = [1, 2, 3, 2];
    let lastIndex = arr.lastIndexOf(2); // lastIndex = 3
    
  • some()
    判断数组中是否有至少一个元素满足条件,返回布尔值。

    let arr = [1, 2, 3];
    let hasEven = arr.some(item => item % 2 === 0); // hasEven = true
    
  • every()
    判断数组中的所有元素是否都满足条件,返回布尔值。

    let arr = [1, 2, 3];
    let allEven = arr.every(item => item % 2 === 0); // allEven = false
    

5. 排序和反转

  • sort()
    对数组元素进行排序(默认按字符串排序),可传入比较函数。

    let arr = [3, 1, 2];
    arr.sort((a, b) => a - b); // arr = [1, 2, 3]
    
  • reverse()
    反转数组中的元素顺序。

    let arr = [1, 2, 3];
    arr.reverse(); // arr = [3, 2, 1]
    

6. 其他常用方法

  • join()
    将数组中的所有元素拼接成一个字符串。

    let arr = [1, 2, 3];
    let str = arr.join('-'); // str = "1-2-3"
    
  • toString()
    将数组转换为字符串。

    let arr = [1, 2, 3];
    let str = arr.toString(); // str = "1,2,3"
    
  • Array.isArray()
    判断一个值是否为数组。

    let arr = [1, 2, 3];
    let isArr = Array.isArray(arr); // isArr = true
    
  • flat()
    将嵌套数组“拉平”,返回一个新数组。

    let arr = [1, [2, [3]]];
    let flatArr = arr.flat(2); // flatArr = [1, 2, 3]
    
  • flatMap()
    先对数组中的每个元素执行映射,然后将结果“拉平”。

    let arr = [1, 2, 3];
    let result = arr.flatMap(x => [x, x * 2]); // result = [1, 2, 2, 4, 3, 6]