ES6 Array.copyWithin() 方法详解与实例
本文详解ES6新增的Array.copyWithin()方法,用于将数组指定位置的元素复制并覆盖到同一数组的其他位置。通过解析target、start和end三个参数的含义及省略规则,结合具体代码示例说明正负索引的使用方式,帮助开发者掌握该数组内部操作技巧。
copyWithin方法概述
ES6为Array新增了copyWithin方法,旨在操作当前数组自身,实现将指定位置的元素复制并覆盖至其他位置的功能。
Array.prototype.copyWithin(target, start = 0, end = this.length)
参数说明
该函数接收三个参数。
target:指定写入的起始索引位置。
start:指定复制源的起始索引,此参数可选,支持负数。
end:指定复制源的结束索引,此参数可选,支持负数,实际截取的结束位置为end-1。
基础用法示例
示例:
将索引3至5的元素(从0开始计数)复制并覆盖到从索引1开始的位置。
下方红色区域代表复制目标的起始位置,黄色区域代表复制源。
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
arr1.copyWithin(1, 3, 6)
console.log('%s', JSON.stringify(arr1))
运行结果:
[1,4,5,6,5,6,7,8,9,10,11]
省略参数的情况
start和end参数均可省略。
若省略start,默认值为0;若省略end,默认值为数组长度。
当目标位置不足以容纳所有复制元素时,仅覆盖可用部分。
const arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
arr2.copyWithin(3)
console.log('%s', JSON.stringify(arr2))
运行结果:
[1,2,3,1,2,3,4,5,6,7,8]
负数索引处理
start和end均支持负数,负数表示从数组末尾向前计数的索引。
const arr3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
arr3.copyWithin(3, -3, -2)
console.log('%s', JSON.stringify(arr3))
运行结果:
[1,2,3,9,5,6,7,8,9,10,11]
总结
以上内容介绍了ES6中Array.copyWithin()函数的用法实例,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复!
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
