簡體   English   中英

對 javascript 中 slice 的使用感到困惑

[英]Confused about the use of slice in javascript

我剛開始學習 Javascript。 其中一項練習是使用切片。 我的理解是 slice 創建了一個數組的淺表副本,並且該淺表副本將包含原始數組中的元素,如所稱。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
console.log(citrus);

我得到:

Orange, Lemon

水果[1] 是橙色水果[3] 是蘋果

我期待

Orange, Apple

我錯過了什么?

slice() 方法選擇從給定的 start 參數開始的元素,並在給定的 end 參數處結束,但不包括。

您甚至在文檔頁面https://www.w3schools.com/jsref/jsref_slice_array.asp#:~:text=The%20slice()%20method%20returns,array%20will%20not%20be%20changed 上

slice() 的語法:

slice(start)
slice(start, end)

返回從“開始”索引到“結束”索引的元素(不包括“結束”索引)

讀這個:

Array.prototype.slice()

參數

開始可選

開始提取的從零開始的索引。

可以使用負索引,表示距序列末尾的偏移量。 slice(-2) 提取序列中的最后兩個元素。

如果 start 未定義,則 slice 從索引 0 開始。

如果 start 大於序列的索引范圍,則返回一個空數組。

結束可選

從零開始的索引,在此之前結束提取。 切片提取直到但不包括結尾。 例如, slice(1,4) 提取第二個元素到第四個元素(索引為 1、2 和 3 的元素)。

可以使用負索引,表示距序列末尾的偏移量。 slice(2,-1) 通過序列中倒數第二個元素提取第三個元素。

如果 end 被省略,切片將通過序列的末尾 (arr.length) 進行提取。

如果 end 大於序列的長度,則 slice 將提取到序列的末尾 (arr.length)。

來源https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice#parameters

slice 方法返回兩個索引之間的數組的一部分(不包括結束索引)這意味着如果您執行以下操作:

let arr = ['foo', 'bar', 'yin', 'yang']
console.log(arr.slice(1, 3))

預期的 output 將是['bar', 'yin']因為您將獲得從索引 1 到索引 3 - 1 的數組的所有元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM