JavaScript数组切片方法

Array.slice()方法用于创建数组的一部分浅拷贝,它可以接受开始和结束索引。即使不提供参数,也会返回整个数组的副本。切片操作不会改变原数组,并在需要时用于复制或截取数组数据。负值索引和超出数组长度的值也被适当地处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单使用:

数组上的slice方法返回数组一部分的浅拷贝。它需要两个数字, astart和 an end。每个数组都有一个slice方法。这是一个简单的例子:

let myArray = [ '⚡️', '🔎', '🔑', '🔩' ];
let newArray = myArray.slice(2, 3);
 
console.log(newArray); // [ '🔑' ]

slice该方法有两个可选参数start, 和end。如果您愿意,您可以同时提供两者、仅提供start或都不提供 - 所以所有这些都是有效的:

let arrayOne = [ '⚡️', '🔎', '🔑', '🔩' ];
let arrayOneSlice = arrayOne.slice(2, 3);  // [ '🔑' ]
 
let arrayTwo = [ '⚡️', '🔎', '🔑', '🔩' ];
let arrayTwoSlice = arrayTwo.slice(2);  // [ '🔑', '🔩' ]
 
let arrayThree = [ '⚡️', '🔎', '🔑', '🔩' ];
let arrayThreeSlice = arrayThree.slice();  // [ '⚡️', '🔎', '🔑', '🔩' ]

结尾:

如果使用了大于数组长度的值,slice则只延续到数组的末尾。如果使用负值,则表示距数组末尾的偏移量。例如,(2, -1)将从数组的开头开始为 2,从数组的结尾开始为 -1:

let arrayOne = [ '⚡️', '🔎', '🔑', '🔩' ];
let arrayOneSlice = arrayOne.slice(2, -1);  // [ '🔑' ]
let arrayOneSliceAgain = arrayOne.slice(1, -1);  // [ '🔎', '🔑' ]

使用切片制作数组的副本

Slice不会改变原始数组。相反,它会创建一个新的浅拷贝。因此,您现有的数组仍将继续包含相同的值:

let arrayOne = [ '⚡️', '🔎', '🔑', '🔩' ];
let arrayOneSlice = arrayOne.slice(2, 3);  
 
console.log(arrayOne); // [ '⚡️', '🔎', '🔑', '🔩' ]
console.log(arrayOneSlice); // [ '🔑' ]

由于slice制作了数组的浅拷贝,它有时也用于复制和制作数组数据的副本。例如,一个空slice函数也会在内存中创建一个新数组 - 允许您在内存中拥有相同数组的两个副本且具有相同的引用:

let arrayOne = [ '⚡️', '🔎', '🔑', '🔩' ];
let arrayOneSlice = arrayOne.slice();
 
arrayOneSlice[2] = '⚡️'
console.log(arrayOne); // [ '⚡️', '🔎', '🔑', '🔩' ]
console.log(arrayOneSlice); // [ '⚡️', '🔎', '⚡️', '🔩' ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小福不认命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值