首页 > web前端 > js教程 > 正文

js 怎样截取数组的一部分

星降
发布: 2025-08-12 16:19:01
原创
208人浏览过

javascript中截取数组部分应使用slice()方法,它不修改原数组而返回新数组;该方法接受起始和结束索引(不含结束索引),支持负数索引表示从末尾计数,若起始索引大于等于数组长度或结束索引小于起始索引则返回空数组;slice()与splice()不同,后者会修改原数组并可删除、插入或替换元素;可通过arr.slice()无参数调用实现数组的浅拷贝,但对象元素仍共享引用;slice()同样适用于字符串,用法与数组一致,返回截取后的新字符串。

js 怎样截取数组的一部分

截取数组的一部分,JavaScript 提供了

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
方法,简单直接。它不会修改原数组,而是返回一个新的数组,包含你想要的那部分。

解决方案

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
方法接收两个参数:起始索引和结束索引(不包含)。如果你只提供一个参数,它会从该索引开始截取到数组末尾。

例如:

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

const newArr1 = arr.slice(1, 4); // [2, 3, 4]
const newArr2 = arr.slice(2);    // [3, 4, 5]
const newArr3 = arr.slice(-2);   // [4, 5] 从倒数第二个元素开始截取
const newArr4 = arr.slice(1, -1); // [2, 3, 4] 从索引 1 截取到倒数第一个元素之前
登录后复制

需要注意的是,索引是从 0 开始的。 负数索引表示从数组末尾开始计数,-1 表示最后一个元素。

如果起始索引大于或等于数组长度,

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
会返回一个空数组。 如果结束索引小于起始索引,它也会返回一个空数组。

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
splice()
登录后复制
登录后复制
登录后复制
有什么区别

这是个常见的问题。虽然它们的名字很像,但功能完全不同。

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
用于截取数组的一部分,返回一个新数组,不改变原数组。 而
splice()
登录后复制
登录后复制
登录后复制
用于修改数组,可以删除、替换或添加元素,会改变原数组。

例如:

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

const splicedArr = arr.splice(1, 2, 'a', 'b'); // 从索引 1 开始删除 2 个元素,并插入 'a' 和 'b'
console.log(arr);       // [1, 'a', 'b', 4, 5]  原数组已被修改
console.log(splicedArr); // [2, 3]  返回被删除的元素组成的数组
登录后复制

所以,如果你只是想截取数组的一部分,

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
是你的首选。 如果你需要修改数组,
splice()
登录后复制
登录后复制
登录后复制
才是你需要的。

如何使用
slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
复制数组?

一个巧妙的用法是使用

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
复制数组。 如果不传递任何参数,
slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
会返回一个包含原数组所有元素的新数组,相当于创建了一个浅拷贝。

const arr = [1, 2, 3, 4, 5];
const newArr = arr.slice(); // 创建一个 arr 的浅拷贝

newArr[0] = 10; // 修改 newArr 的第一个元素

console.log(arr);    // [1, 2, 3, 4, 5]  原数组未被修改
console.log(newArr); // [10, 2, 3, 4, 5]  新数组已被修改
登录后复制

需要注意的是,这只是一个浅拷贝。 如果数组中的元素是对象,那么新数组和原数组中的对象仍然指向同一个内存地址。 修改其中一个数组中的对象,会影响到另一个数组。

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
在处理字符串时如何使用?

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
也可以用于字符串。 它的用法和数组类似,也是截取字符串的一部分,返回一个新的字符串。

const str = "hello world";

const newStr1 = str.slice(0, 5);  // "hello"
const newStr2 = str.slice(6);     // "world"
const newStr3 = str.slice(-5);    // "world"
登录后复制

总的来说,

slice()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
是一个非常方便的方法,可以用于截取数组和字符串的一部分。 掌握它的用法,可以让你在 JavaScript 编程中更加得心应手。

以上就是js 怎样截取数组的一部分的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号