copyWithin方法详解
copyWithin方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。它返回一个新的数组
一个参数的时候
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// 从索引为0的位置开始复制,复制的数组的值是arr1,结束位置是数组的长度
const arr2 = arr1.copywithin(4);
// 结果 [1, 2, 3, 4, 1, 2, 3, 4, 5, 6]
两个参数的时候
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// 从索引为1的位置开始复制,复制的数组的长度为从索引为4的位置开始,结束位置是数组的长度
const arr2 = arr1.copyWithin(1, 4);
// 结果 [1, 5, 6, 7, 8, 9, 10, 8, 9, 10]
三个参数的时候
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// 从索引为1的位置开始复制,复制的数组的值是索引为3开始,索引为5结束(不包含5),结束的位置是索引为4的位置
const arr2 = arr1.copyWithin(1, 3, 5);
// 结果 [1, 4, 5, 4, 5, 6, 7, 8, 9, 10], 当存在3个参数的时候,更像是将数组的某一段截下来,然后以第一个参数为索引的位置开始向后覆盖
以上可以得知,copyWithin返回的是一个新的数组,原来的数组被修改了,但是数组的长度是不变的!