copyWithin() 方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中。
语法:array.copyWithin(targetstart, start, end)
targetstart | 必需参数。这是你要开始需要替换数据的地方索引,包含此位置。可为负数,从后计数 |
start | 可选参数。你要使用的那一段数据的开始索引位置,默认为0,从头开始。可为负数,从后计数 |
end | 可选参数。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。 |
首先,我们要清楚它是对源数组进行修改的。看例子就很一目了然了。
var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"];
fruits.copyWithin(2);//['Banana', 'Orange', 'Banana', 'Orange', 'Apple', 'Mango']
console.log('fruits :>> ', fruits);
var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"];
fruits.copyWithin(2,0,2);//['Banana', 'Orange', 'Banana', 'Orange', 'Kiwi', 'Papaya']
console.log('fruits :>> ', fruits);
var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"];
fruits.copyWithin(2,-1);//['Banana', 'Orange', 'Papaya', 'Mango', 'Kiwi', 'Papaya']
console.log('fruits :>> ', fruits);
拓展:copyWithin()跟splice()有什么不同的呢?那有一个相似的slice呢?是不是还会想到字符串的解决呢?字符串有哪些截取的方法呢?又有什么不同的呢?字符串替换呢?正则如何使用呢?截取中非常需要注意的堆内存和栈内存怎么存储的呢?从而引出深浅拷贝问题呢?哪些是深拷贝呢?哪些又是浅拷贝呢?知识都是连串的。不需要全部熟记于心,遇到问题你应该有想到那个方法的能力和一些注意的地方,这就是高级开发所具备处理问题的能力而不是代码记得有多么熟悉!!!!!!