掌握 JavaScript 中的数组函数:slice、splice 和 forEach

千雪姑娘_1001

千雪姑娘_1001

2024-12-18

654人浏览

原创

掌握 javascript 中的数组函数:slice、splice 和 foreach

JavaScript 数组函数详解:slice、splice 和 forEach

JavaScript 提供丰富的内置数组方法,方便开发者操作和处理数组元素。本文重点介绍三种常用的数组方法:slice、splice 和 forEach,它们能显著提升数组操作的效率和代码简洁性。

1. slice() 方法

slice() 方法用于提取数组的一部分,不修改原始数组。它创建原始数组片段的浅拷贝,并返回一个新的数组。

语法:

array.slice(startIndex, endIndex);
  • startIndex:起始索引(包含该索引处的元素)。
  • endIndex:结束索引(不包含)。省略时,切片至数组末尾。

示例:

const arr = [1, 2, 3, 4, 5];

// 从索引 1 到索引 3 (不包含索引 3) 切片
const newArr = arr.slice(1, 3); 

console.log(newArr);  // 输出: [2, 3]

省略 endIndex 参数,slice() 将从 startIndex 复制到数组末尾:

const arr = [1, 2, 3, 4, 5];

// 从索引 2 到末尾切片
const newArr = arr.slice(2);

console.log(newArr);  // 输出: [3, 4, 5]

负索引:

可以使用负索引从数组末尾开始切片:

const arr = [1, 2, 3, 4, 5];

// 从索引 -3 到末尾切片
const newArr = arr.slice(-3);

console.log(newArr);  // 输出: [3, 4, 5]

2. splice() 方法

splice() 方法用于通过添加或删除元素来修改数组。它直接修改原始数组,可在特定索引处插入或删除元素。

语法:

array.splice(startIndex, deleteCount, item1, item2, ..., itemN);
  • startIndex:开始修改数组的索引。
  • deleteCount:从 startIndex 开始删除的元素数量。
  • item1, item2, ..., itemN:从 startIndex 开始添加到数组的元素。

示例:

const arr = [1, 2, 3, 4, 5];

// 从索引 2 删除 2 个元素
const removedElements = arr.splice(2, 2);

console.log(arr);  // 输出: [1, 2, 5]
console.log(removedElements);  // 输出: [3, 4]

splice() 也可用于添加元素:

const arr = [1, 2, 3, 4, 5];

// 在索引 2 处插入 6 和 7
arr.splice(2, 0, 6, 7);

console.log(arr);  // 输出: [1, 2, 6, 7, 3, 4, 5]

删除和添加结合:

splice() 可同时删除和添加元素:

AI舌诊面诊问诊医疗系统+诊疗商城系统源码
AI舌诊面诊问诊医疗系统+诊疗商城系统源码

AI 舌诊面诊问诊医疗系统 + 诊疗商城系统源码是一套结合 AI 辅助诊断与商品转化的健康类程序,基于浩创云、ThinkPHP(PHP)开发,支持微信服务号与 H5 端,适合做中医舌诊面诊问答、健康建议推送以及配套诊疗商品的运营。

下载
const arr = [1, 2, 3, 4, 5];

// 删除索引 1 处的 2 个元素,并添加 6 和 7
arr.splice(1, 2, 6, 7);

console.log(arr);  // 输出: [1, 6, 7, 4, 5]

3. forEach() 方法

forEach() 方法用于迭代数组元素,并对每个元素应用一个函数。与 map() 或 filter() 不同,forEach() 不返回新数组,只执行回调函数的副作用(例如,打印或修改元素)。

语法:

array.forEach(callback(currentValue, index, array));
  • callback:对每个元素执行的函数。
    • currentValue:当前处理的元素。
    • index:当前元素的索引。
    • array:调用 forEach 的数组。

示例:

const arr = [1, 2, 3, 4, 5];

// 打印数组的每个元素
arr.forEach(function(element) {
  console.log(element);
});

// 输出:
// 1
// 2
// 3
// 4
// 5

使用箭头函数:

使用箭头函数可简化代码:

const arr = [1, 2, 3, 4, 5];

arr.forEach((element, index) => {
  console.log(`索引 ${index}: ${element}`);
});

// 输出:
// 索引 0: 1
// 索引 1: 2
// 索引 2: 3
// 索引 3: 4
// 索引 4: 5

修改数组元素:

forEach() 主要用于执行副作用,不建议用于返回或修改数组。如果需要基于现有数组创建新数组,请使用 map()。

slice、splice 和 forEach 的比较

方法 目的 是否修改原始数组 返回值
slice 提取数组一部分,不修改原始数组 否 新数组 (浅拷贝)
splice 添加/删除数组中特定位置的元素 是 被删除的元素 (数组)
forEach 对每个数组元素执行一个函数 否 undefined

结论

  • slice() 适用于提取数组的一部分,且不修改原始数组。
  • splice() 允许删除、替换或向数组添加元素,并直接修改原始数组。
  • forEach() 适用于迭代数组元素并执行副作用,但不返回新数组。

熟练掌握这三种方法,能显著提升 JavaScript 数组操作的效率和代码可读性。


作者:Abhay Singh Kathayat

全栈开发者,精通前端和后端技术,擅长使用多种编程语言和框架构建高效、可扩展且用户友好的应用程序。 联系邮箱:kaashshorts28@gmail.com

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

代码可读性

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

2025.12.04

798

13

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

6467

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2708

6

go语言 数组和切片
go语言 数组和切片

本专题整合了go语言数组和切片的区别与含义,阅读专题下面的文章了解更多详细内容。

2025.09.03

1992

14

golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

2025.09.05

670

5

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

2025.11.16

343

7

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

2025.11.17

533

20

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

2025.11.27

303

6

undefined是什么
undefined是什么

undefined是代表一个值或变量不存在或未定义的状态。它可以作为默认值来判断一个变量是否已经被赋值,也可以用于设置默认参数值。尽管在不同的编程语言中,undefined可能具有不同的含义和用法,但理解undefined的概念可以帮助我们更好地理解和编写程序。本专题为大家提供undefined相关的各种文章、以及下载和课程。

2023.07.31

12165

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程