JavaScript 数组方法大全与实用技巧

63 阅读4分钟

在 JavaScript 开发中,数组是最常用的数据结构之一。
熟练掌握数组方法,不仅能让你更高效地处理数据,还能写出更简洁优雅的代码。
本文将系统介绍常用的数组方法及其使用示例与技巧。


push() —— 向数组末尾添加元素

用途:
向数组的末尾添加一个或多个元素,并返回新数组的长度

示例:

let person = ['张三', '李四'];
console.log(person.push('王五')); // 输出:3,返回新数组的长度
console.log(person);              // ['张三', '李四', '王五']

提示:
push() 会修改原数组。如果希望返回一个新数组,可以使用展开运算符:

const newArr = [...person, '赵六'];
console.log(person);              // ['张三', '李四', '王五', '赵六']

pop() —— 移除数组末尾元素

用途:
删除数组最后一个元素,并返回该元素

示例:

let person = ['张三', '李四', '王五'];
console.log(person.pop()); // 输出:王五
console.log(person);       // ['张三', '李四']

注意:
pop() 操作同样会改变原数组。


shift() —— 移除数组开头元素

用途:
删除数组的第一个元素,并返回该元素

示例:

let person = ['张三', '李四', '王五'];
console.log(person.shift()); // 输出:张三
console.log(person);         // ['李四', '王五']

unshift() —— 向数组开头添加元素

用途:
在数组的开头添加一个或多个元素,并返回新数组的长度

示例:

let person = ['张三', '李四', '王五'];
console.log(person.unshift('赵六')); // 输出:4
console.log(person);                 // ['赵六', '张三', '李四', '王五']

concat() —— 合并数组

用途:
连接两个或多个数组,返回一个新数组,不改变原数组。

示例:

let person1 = ['张三', '李四', '王五'];
let person2 = ['尼古拉斯', '威廉姆斯', '伊丽莎白'];

let result = person1.concat(person2);
console.log(result);       // ['张三', '李四', '王五', '尼古拉斯', '威廉姆斯', '伊丽莎白']

提示:
ES6 中可以使用展开语法实现相同功能:

let result = [...person1, ...person2];
console.log(result);       // ['张三', '李四', '王五', '尼古拉斯', '威廉姆斯', '伊丽莎白']

slice() —— 截取数组片段

用途:
从数组中选取部分元素并返回新数组,不影响原数组。

语法:

array.slice(start, end);

示例:

let person = ['张三', '李四', '王五', '尼古拉斯', '威廉姆斯', '伊丽莎白'];
console.log(person.slice(1, 4)); 
// ['李四', '王五', '尼古拉斯']

参数说明:

  • start:起始索引(包含)。
  • end:结束索引(不包含)。
  • 如果参数为负数,则从数组末尾开始计算。

splice() —— 修改数组(增、删、改)

用途:
在指定位置添加、删除或替换元素,会直接修改原数组

语法:

array.splice(index, howMany, item1, item2, ...);

示例:

let person = ['张三', '李四', '王五', '尼古拉斯', '威廉姆斯', '伊丽莎白'];
person.splice(3, 1, '建国', '兴邦');
console.log(person);
// ['张三', '李四', '王五', '建国', '兴邦', '威廉姆斯', '伊丽莎白']

参数说明:

  • index:开始修改的位置;
  • howMany:删除的元素个数;
  • itemX:要添加的新元素。

forEach() —— 遍历数组(无返回值)

用途:
对数组的每个元素执行指定函数,不返回新数组

示例:

let person = ['张三', '李四', '王五'];
person.forEach((name, index) => {
  console.log(`索引 ${index} 对应的人是 ${name}`);
});

提示:
forEach() 适合只执行操作(如打印、修改外部变量),不需要返回值的场景。


map() —— 遍历数组并生成新数组

用途:
对数组中的每个元素执行函数,并返回一个新数组。

示例:

let person = ['张三', '李四', '王五'];
let familyPerson = person.map(name => `葬爱家族·${name}`);
console.log(familyPerson);
// ['葬爱家族·张三', '葬爱家族·李四', '葬爱家族·王五']

注意:

  • forEach() 不返回新数组;
  • map() 返回一个与原数组等长的新数组。

其他常用数组进阶方法推荐

方法功能是否返回新数组
filter()过滤符合条件的元素
find()查找第一个符合条件的元素否(返回元素)
reduce()累积计算数组值否(返回结果)
some() / every()判断是否存在/全部满足条件
includes()判断数组是否包含某个值

总结

本文介绍了 JavaScript 数组的常用方法,包括:

  • 增删改查类:pushpopshiftunshiftsplice
  • 复制与合并类:concatslice
  • 遍历与处理类:forEachmap

熟练掌握这些方法,可以让你更灵活地操作数组,实现从简单列表到复杂数据处理的各种场景。
建议多动手实践,结合调试工具观察数组变化,加深理解。