1. 程式人生 > 程式設計 >ES6陣列複製和填充方法copyWithin()、fill()的具體使用

ES6陣列複製和填充方法copyWithin()、fill()的具體使用

目錄
  • 批量複製 copyWithin()
  • 填充陣列方法 fill()
  • 關於索引的計算方式,兩種方法相同

copyWithin()、fill()共同點

  • 需要指定一個數組例項的範圍:包含開始索引,不包含結束索引。
  • 使用這個方法會改變陣列內容,但不會改變陣列的大小。

批量複製 copyWithin()

  • copyWithin() 方法用於從陣列的指定位置拷貝元素到陣列的另一個指定位置中。
  • copyWithin()會按照指定範圍淺複製陣列中的部分內容,然後將它們插入到指定索引開始的位置。

語法

array.copyWithin(target,start,end)

引數:

http://www.cppcns.com 描述
target 必需。複製到指定目標索引位置。
start 可選。元素複製的起始位置。
end 可選。停止複製的索引位置 (預設為array.length)。如果為負值,表示倒數。

返回值:返回複製之後的陣列

程式碼例項:

// 複製陣列的前面兩個元素到後面兩個元TWFNDKCh素上:
var fruits = ["Banana","Orange","Apple","Mango"]; 
fruits.copyWithin(2,0);//Banana,Orange,Banana,Orange

// 複製陣列的前面兩個元素到第三和第四個位置上:
var fruits = ["Banana","Mango","Kiwi","Papaya"]; 
fruits.copyWithin(2,2);//Banana,Kiwi,Papaya

填充陣列方法 fill()

fill() 方法用於將一個固定值替換數http://www.cppcns.com

組的元素。

語法:

array.fill(value,0); text-align: left">
        
            引數
            描述
        
    
    
        
            value
            必需。填充的值。
        
        
            start
            可選。開始填充位置。
        
        
            end
            可選。停止填充位置 (預設為array.length)
        
    

返回值:陣列

程式碼例項:

//填充 "Runoob" 到陣列的最後兩個元素:
var fruits = ["Banana","Mango"]; 
fruits.fill("Runoob",2,4);//[ "Banana","Runoob","Runoob" ]

//使用固定值填充陣列:
var fruits = ["Banana","Apple","Mango"]; 
fruits.fill("Runoob");//Runoob,Runoob,TWFNDKChRunoob,Runoob

關於索引的計算方式,兩種方法相同

  • 開始索引用於指定開始填充的位置,它是可選的。
  • 如果不提供結束索引,則一直填充到陣列末尾。
  • 負值索引從陣列末尾開始計算。也可以將負索引想象成陣列長度加上它得到的一個正索引。
  • 靜默忽略超出陣列邊界、零長度及方向相反的索引範圍。

程式碼例項:

const zeroes = [0,0];

//用6填充索引大於等於3的元素
zeroes.fill(6,3);//[0,6,6]
zeroes.fill(0);//重置

//用7填充索引大於等於1且小於3的元素
zeroes.fill(7,1,7,0]
zeroes.fill(0);//重置

//用8填充索引大於等於1且小於4的元素
//(-4+zeroes.length=1) (-1+zeroes.length=4)
zeroes.fill(8,-4,-1);//[0,8,0]

//索引過低,忽略
zeroes.fill(1,-10,-6);//[0,0]
//索引過高,忽略
zeroes.fill(1,10,15);//[0,0]
//索引反向,忽略
zeroes.fill(2,4,2);//[0,0]
//索引部分可用,填充可用部分
zeroes.fill(4,3,10);//[0,4]

到此這篇關於ES6複製和填充方法copyWithin()、fill()的具體使用的文章就介紹到這了,更多相關ES6 copyWithin()、fill()內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!