JavaScript Array slice

JavaScript slice 可以任意截取出  JavaScript Array 陣列的一個部分,只要指定好要截取的陣列元素起始位置以及結束位置即可,對於偶爾需要在一個大型陣列中,取出某一段來使用相當實用。另外,splice 還可以用來擷取字串的一部分,用法與 substringsubstr 函式類似,但比較特別的是 slice 的參數可以使用負數,且可以處理陣列或字串,本篇主題以 slice 處理陣列為主,想要了解 slice 處理字串可以參考此篇:JavaScript slice。以下就來看看 slice 如何擷取出陣列的一個部分。

JavaScript Array.slice 基本語法

Array.slice( begin , end )


Array 是任何想要被截取的陣列,slice 小括號內有兩個重要參數,第一個是 begin,代表要從陣列的哪個元素開始擷取,第一個陣列元素為 0,第二個為 1 ... 以此類推,begin 是必填項目,第二個參數 end 則代表結束位置,slice 在截取元素時,會取到 end 且不包含 end,如果沒有填寫 end,則 slice 會從 begin 開始擷取至最後一個陣列元素。頗有意思的是 begin 與 end 這兩個參數都可以是負數,代表從最後一個陣列元素開始計算,倒數第二個陣列元素為 -2,倒數第三個陣列元素為 -3 ... 以此類推。

JavaScript Array.slice 範例
<script type="text/javascript">
var NewArray = ["A", "B", "C", "D", "E"];
document.write(NewArray); // 輸出 A,B,C,D,E
document.write(NewArray.slice(2)); // 輸出 C,D,E
document.write(NewArray.slice(1,3)); // 輸出B,C
document.write(NewArray.slice(-2,-1)); // 輸出 D
document.write(NewArray); // 輸出 A,B,C,D,E
</script>

範例的一開始,先準備一個新的陣列 NewArray,透過 document.write 將經過 JavaScript slice 處理的結果輸出於螢幕上。
  • 第一次輸出的結果是原始的陣列。
  • 第二次輸出 NewArray.slice(2) 的結果,請注意,第一個陣列元素從 0 開始計算,slice(2) 的意思是擷取出第三個陣列元素之後的所有陣列元素,並返回一個新的陣列值,輸出結果為 C,D,E。
  • 第三次輸出 NewArray.slice(1,3) 的結果,代表從陣列的第二個元素開始擷取,不包含第四個陣列元素。
  • 第四次輸出 NewArray.slice(-2,-1) 的結果,代表從倒數第二個陣列元素擷取至倒數第一個陣列元素,且不包含倒數第一個陣列元素,所以擷取結果僅有"D"。
  • 第五次輸出的結果是原始的陣列。
由以上範例結果可以看出,陣列經過 JavaScript Array slice 處理過後並不會被改變,而是 JavaScript Array slice 返回一個新的陣列,所以第一次輸出以及第五次輸出的結果均相同,因為原始陣列並未被修改,JavaScript Array slice 使用上較需克服的是陣列元素的位置,第一個陣列元素是從 0 開始計算,有這樣的觀念,多試幾次就熟能生巧。

slice 方法為 JavaScript 1.2 版本後就有的功能,所有主流的瀏覽器幾乎都支援 JavaScript Array slice 方法。

推薦給您的相關主題

© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012