JavaScript 中的拼接與切片
JavaScript 陣列是具有預定義屬性的特殊物件。這些是可以分配給作為輸入引數傳遞的值的數值屬性。JavaScript 提供了幾種處理陣列的方法。一些比較流行的陣列方法是 .push()
、.pop()
、.reverse()
等。所有這些方法都會改變陣列。
在本文中,我們將瞭解 JavaScript 中 splice
和 slice
之間的區別。
JavaScript 中的 splice()
與 slice()
splice()
splice()
方法影響或修改陣列的內容。它要麼刪除或替換現有元素和/或在適當位置新增新元素。
語法:
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2, itemN)
JavaScript Splice 方法有三個引數,第一個是 start
。它是一個必需引數,用於指定開始修改陣列的陣列的起始位置/索引。如果它大於陣列的長度,則將 start 設定為陣列的長度。
在這種情況下,不會刪除任何元素,但該方法的行為類似於求和函式,新增與提供的 [n*] 個元素一樣多的元素。如果它是負數,它從陣列末尾的那麼多元素開始。
第二個引數是 deleteCount
,它是一個可選引數。該引數指定陣列中要從頭開始刪除的元素個數。如果省略 deleteCount
或其值等於或大於 array.length - start
,則刪除陣列開頭到結尾的所有元素,0 或負數,不刪除任何專案。在這種情況下,你必須輸入至少一篇新文章。
第三個引數是 item1, item2, ...
,它是一個可選引數。此引數指定要新增到陣列中的元素,從開頭開始。如果不指定項,splice() 只會消除陣列的元素。
此方法返回一個包含已刪除專案的陣列。如果只刪除一個元素,則返回一個元素的陣列。如果沒有刪除任何元素,則返回一個空陣列。有關更多資訊,請閱讀 splice
方法的文件。
const osConfig = ['Linux', 'Ubuntu', 'MacOS', 'Windows'];
console.log(osConfig, osConfig.splice(0, 2));
在上面的示例中,我們指定了不同型別的作業系統。當你嘗試提取開源作業系統時,它會影響原始的 osConfig
陣列並返回一個不包含開源作業系統名稱的陣列。當你在任何瀏覽器中執行上述程式碼時,它會列印出類似這樣的內容。
輸出:
["MacOS", "Windows"], ["Linux", "Ubuntu"]
切片()
slice() 方法從開始到結束將陣列的一部分的淺拷貝返回到新選擇的陣列物件中,其中 start 和 end 是該陣列中元素的索引。原始陣列不會受到影響或修改。splice()
方法可以接受 n 個引數,而 slice()
方法接受 2 個引數。
語法:
slice()
slice(start)
slice(start, end)
JavaScript slice()
方法包含兩個引數,其中 start
是第一個引數,一個可選引數。此引數指定開始提取的索引。該索引從 0
開始。start
的預設值始終為 0
。如果 start 大於陣列的長度,則返回一個空陣列。
第二個引數是一個 end
,一個可選引數。此引數指定提取需要結束的端點。slice
提取到指定的索引但不包括結尾。例如,如果結尾是 n
,則提取的最後一個元素是 n-1
。如果未指定 end,則 slice 方法從陣列的末尾提取。
此方法返回一個包含提取元素的新陣列。有關更多資訊,請閱讀 slice
方法的文件。
const osConfig = ['Linux', 'Ubuntu', 'MacOS', 'Windows'];
console.log(osConfig, osConfig.slice(0, 2););
在上面的示例中,我們指定了不同型別的作業系統。當你嘗試提取開源作業系統時,它不會影響原始的 osConfig
陣列,而是會建立一個包含開源作業系統名稱的新陣列。當你在任何瀏覽器中執行上述程式碼時,它會列印出類似這樣的內容。
輸出:
["Linux", "Ubuntu", "MacOS", "Windows"], ["Linux", "Ubuntu"]
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn