js 操作数组的方法

在 JavaScript 中,数组对象提供了多种方法来操作数组。以下是一些常用的数组操作方法,包括它们的详细代码示例:

1、push() - 向数组的末尾添加一个或多个元素,并返回新的长度。

复制代码
`let array = [1, 2, 3];
array.push(4); // 添加单个元素
console.log(array); // 输出: [1, 2, 3, 4]

array.push(5, 6); // 添加多个元素
console.log(array); // 输出: [1, 2, 3, 4, 5, 6]`

2、pop() - 删除并返回数组的最后一个元素。

复制代码
`let array = [1, 2, 3, 4];
let lastElement = array.pop();
console.log(array); // 输出: [1, 2, 3]
console.log(lastElement); // 输出: 4`

3、shift() - 删除并返回数组的第一个元素。

复制代码
`let array = [1, 2, 3, 4];
let firstElement = array.shift();
console.log(array); // 输出: [2, 3, 4]
console.log(firstElement); // 输出: 1`

4、unshift() - 向数组的开头添加一个或多个元素,并返回新的长度。

复制代码
`let array = [1, 2, 3];
array.unshift(0); // 添加单个元素
console.log(array); // 输出: [0, 1, 2, 3]

array.unshift(-2, -1); // 添加多个元素
console.log(array); // 输出: [-2, -1, 0, 1, 2, 3]`

5、concat() - 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

复制代码
`let array1 = [1, 2, 3];
let array2 = [4, 5, 6];
let concatenatedArray = array1.concat(array2);
console.log(concatenatedArray); // 输出: [1, 2, 3, 4, 5, 6]`

6、slice() - 返回一个新的数组对象,这一对象是一个由开始到结束(不包括结束)选择的、由原数组的浅拷贝构成。原数组不会被改变。

复制代码
`let array = [1, 2, 3, 4, 5];
let slicedArray = array.slice(1, 3); // 从索引1开始到索引2(不包括)结束
console.log(slicedArray); // 输出: [2, 3]`

7、splice() - 通过删除、替换现有元素或者添加新元素来修改数组,并以数组的形式返回被修改的内容。

复制代码
`let array = [1, 2, 3, 4, 5];

// 从索引2开始,删除2个元素,并添加新元素6和7
let removedElements = array.splice(2, 2, 6, 7);
console.log(array); // 输出: [1, 2, 6, 7, 5]
console.log(removedElements); // 输出: [3, 4]`

8、map() - 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。

复制代码
`let array = [1, 2, 3, 4];
let mappedArray = array.map(function(item) {
return item * 2;
});
console.log(mappedArray); // 输出: [2, 4, 6, 8]`

9、filter() - 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

复制代码
`let array = [1, 2, 3, 4, 5];
let filteredArray = array.filter(function(item) {
return item > 2;
});
console.log(filteredArray); // 输出: [3, 4, 5]`

10、reduce() - 对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个输出值。

复制代码
`let array = [1, 2, 3, 4, 5];
let sum = array.reduce(function(accumulator,`
相关推荐
晚风予星17 分钟前
Ant Design Token Lens 迎来了全面升级!支持在 .tsx 或 .ts 文件中直接使用 Design Token
前端·react.js·visual studio code
sunny_28 分钟前
⚡️ vite-plugin-oxc:从 Babel 到 Oxc,我为 Vite 写了一个高性能编译插件
前端·webpack·架构
GIS之路32 分钟前
ArcPy 开发环境搭建
前端
林小帅2 小时前
【笔记】OpenClaw 架构浅析
前端·agent
林小帅2 小时前
【笔记】OpenClaw 生态系统的多语言实现对比分析
前端·agent
程序猿的程3 小时前
开源一个 React 股票 K 线图组件,传个股票代码就能画图
前端·javascript
不爱说话郭德纲3 小时前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
大雨还洅下4 小时前
前端JS: 虚拟dom是什么? 原理? 优缺点?
javascript
唐叔在学习4 小时前
[前端特效] 左滑显示按钮的实现介绍
前端·javascript
用户5282290301804 小时前
【学习笔记】ECMAScript 词法环境全解析
前端