2025年5月26日 星期一

再探 Array.copyWithin() 之四

 再探 Array.copyWithin() 之四

前言

    在之前的 再探 Array.copyWithin() 之三 介紹當 start 的值是負值的狀況,這次來學習 end的值是負值。


內容

  範例如下

let ar = [ 0 , 1 , 2 , 3 , 4 , 5 ];
//
console.log( [...ar].copyWithin( 2 , 0 , -4 ) );//[0, 1, 0, 1, 4, 5]
console.log( [...ar].copyWithin( 2 , 0 , -3 ) );//[0, 1, 0, 1, 2, 5]
console.log( [...ar].copyWithin( 0 , 0 , -1 ) );//[0, 1, 2, 3, 4, 5]


當引數 end 是負值,代表複製的結尾索引是從結尾來算。第一例的複製結尾是 -4 ,從結尾來算可以得到索引 2 ,所以第一例的結果跟直接將 end 填上 2 的結果一樣,第二例的 end 是 -3 ,換算回正索引的話是 3 ,所以結果和 end 是 3 的狀況一樣。最後一例是將 end 填上 -1 ,也就是陣列的最後一個索引,這其實就何不填 end 時的結果一樣是複製到結尾。


參考資料

[ developer.mozilla.org ] Array.prototype.copyWithin()


相關文章與資料

再探 Array.copyWithin() 之三

再探 Array.copyWithin() 之二

再探 Array.copyWithin()

初探 Array.copyWithin()

沒有留言:

張貼留言