JS 数组方法
JavaScript 提供了大量内置方法,用于操作和处理数组。可以按功能分为以下几类:
创建与基本操作
-
Array.isArray(arr)判断一个值是否为数组。jsArray.isArray([1, 2]); // true
Array.isArray("abc"); // false -
arr.length获取或设置数组长度。jsconst 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