跳到主要内容

JS 数组方法

JavaScript 提供了大量内置方法,用于操作和处理数组。可以按功能分为以下几类:


创建与基本操作

  • Array.isArray(arr) 判断一个值是否为数组。

    js
    Array.isArray([1, 2]); // true
    Array.isArray("abc"); // false
  • arr.length 获取或设置数组长度。

    js
    const arr = [1, 2, 3];
    arr.length = 2;
    console.log(arr); // [1, 2]

添加与删除

  • push(...items) :在末尾添加元素,返回新长度。
  • pop() :删除最后一个元素,返回被删除的值。
  • unshift(...items) :在开头添加元素。
  • shift() :删除第一个元素。
js
let arr = [1, 2];
arr.push(3); // [1, 2, 3]
arr.unshift(0); // [0, 1, 2, 3]
arr.pop(); // [0, 1, 2]
arr.shift(); // [1, 2]

拼接与切片

  • concat() :合并数组,返回新数组。
  • slice(start, end) :截取部分元素(不修改原数组)。
  • splice(start, deleteCount, ...items) :删除或插入元素(会修改原数组)。
js
let arr = [1, 2, 3, 4];
arr.splice(1, 2, "a", "b"); // [1, "a", "b", 4]

查找

  • indexOf(value) / lastIndexOf(value) :返回第一次/最后一次出现的索引。
  • includes(value) :判断是否包含某个值。
  • find(callback) :返回第一个满足条件的元素。
  • findIndex(callback) :返回第一个满足条件的索引。
js
let arr = [10, 20, 30];
arr.find(x => x > 15); // 20
arr.findIndex(x => x > 15); // 1

遍历与处理

  • forEach(callback) :遍历数组(无返回值)。
  • map(callback) :返回新数组(对每个元素执行操作)。
  • filter(callback) :筛选出符合条件的元素。
  • reduce(callback, initial) :累计计算。
  • some(callback) :只要有一个满足条件返回 true。
  • every(callback) :所有都满足条件才返回 true。
js
let arr = [1, 2, 3];
arr.map(x => x * 2); // [2, 4, 6]
arr.filter(x => x > 1); // [2, 3]
arr.reduce((a, b) => a + b, 0); // 6

排序与反转

  • sort(compareFn) :排序(会修改原数组)。
  • reverse() :反转顺序。
js
let arr = [3, 1, 2];
arr.sort(); // [1, 2, 3]
arr.reverse(); // [3, 2, 1]

转换与字符串操作

  • join(separator) :将数组转换为字符串。
  • toString() :转为字符串。
  • flat(depth) :展开嵌套数组。
  • flatMap(callback) :先映射再扁平化。
js
[1, [2, [3]]].flat(2); // [1, 2, 3]
[1, 2, 3].join('-'); // "1-2-3"