根據MDN 檔案,如果end引數 inArray.slice(start, end)大于序列的長度,它將從序列的末尾提取:
如果 end 大于序列的長度,則 slice 將提取到序列的末尾 (arr.length)。
我有以下代碼:
const a = new Array(30).fill(5)
for (let i = 0; i < a.length; i = 25) {
const newItems = a.slice(i, 25);
console.log(newItems)
}
我得到以下輸出:
> (25) [5, 5, 5, ... 23 items more]
> []
我期望第二個陣列的長度為 5,其余 5 個專案被捕獲,但我得到一個空陣列。我不知道為什么,因為a.slice(25, 25)應該給我從索引 25 開始到陣列末尾的專案(因為它的長度小于 25)。我的理解哪里出錯了?
uj5u.com熱心網友回復:
begin和符號化檔案中陣列的end索引。start是包容性的,但是end是獨占性的,因此您試圖檢索以下范圍的切片:[25, 25)從數學的角度來看,這是一個空集。
您的代碼應如下所示:
const a = new Array(30).fill(5)
for (let i = 0; i < a.length; i = 25) {
const newItems = a.slice(i, i 25);
console.log(newItems)
}
uj5u.com熱心網友回復:
slice 函式的 start 和 end 引數表示陣列中的索引位置。開始包容,結束排斥。您擁有的代碼試圖使用 25 作為開始和結束。因此,空陣列可能嘗試添加計數可能會給您預期的輸出。
const a = new Array(30).fill(5)
for (let i = 0; i < a.length; i = 25) {
const newItems = a.slice(i, i 25);
console.log(newItems)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478660.html
標籤:javascript
