簡體   English   中英

奇怪的 Array.slice 行為

[英]Strange Array.slice behavior

誰能解釋“切片”行為?

 var arr = ['a', 'b', 'c', 'd', 'e', 'f'] console.log(arr.slice(0, 4)); // [ 'a', 'b', 'c', 'd' ] console.log(arr.slice(4, 4)); // []

為什么第二個數組是空的? 不應該是 ['e','f'] 嗎? 如果省略“end”參數,則結果如預期。

arr.slice(4, 4)將返回從 index = 4 開始到 index = 4 的項目; 4-4=0所以你的數組長度為0

https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

 var arr = ['a', 'b', 'c', 'd', 'e', 'f'] console.log(arr.slice(0, 4)); // [ 'a', 'b', 'c', 'd' ] console.log(arr.slice(4, 4)); // [] console.log(arr.slice(2, 4)); console.log(arr.slice(1, 2));

根據官方文檔

將數組的一部分的淺拷貝返回到從開始到結束(不包括結束)選擇的新數組對象中。 不會修改原始數組。

這意味着,您從索引 4 開始,您在該索引處結束,因此實際上您沒有采用任何元素,因為開始和結束索引之間的差異是 0,因此沒有采用任何元素。

暫無
暫無

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

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