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,`
相关推荐
ZhengEnCi17 分钟前
12 种高级 UI 交互效果及对应 AI 提示词:从按压回弹到底部抽屉的物理感教学
前端·css·交互设计
nice_lcj5202 小时前
Java Lambda 表达式入门:怎么写、怎么用、常用方法有哪些
java·开发语言·后端·面试
码农小河663 小时前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
IT_陈寒3 小时前
Redis大key删除为什么会导致服务卡顿?我的线上事故复盘
前端·人工智能·后端
系统集成-鹰翔3 小时前
ERP图片改名后仍命中识别缓存:缓存键、十分钟到期与调用计数
javascript·经验分享·后端
用户2705077725244 小时前
MCP 最小 Server 实测:3 个 JSON-RPC 报错与修法
前端
用户499335025074 小时前
一人VIP账号多人共用:Web 代理里的会话共享怎么实现
前端
用户老李4 小时前
无线电自学教程 05:第一台收音机——从矿石机到 SDR
前端
IPIPD4 小时前
Node.js请求遇到503怎么重试?先解析Retry-After,再做有上限退避
前端
葡萄城技术团队4 小时前
dsh-spreadjs-editor 的集成链路:把 SpreadJS Designer 嵌进 Agent 工作台
前端