在 JavaScript 中按值從陣列中刪除專案
本教程將討論如何使用 JavaScript 中的 splice()
和 filter()
函式按值從陣列中刪除專案。
使用 JavaScript 中的 splice()
函式按值從陣列中刪除專案
要按值從陣列中刪除專案,我們可以使用 JavaScript 中的 splice()
函式。splice()
函式使用索引從陣列中新增或刪除專案。要按值從給定陣列中刪除專案,你需要使用 indexOf()
函式獲取該值的索引,然後使用 splice()
函式使用其索引從陣列中刪除該值。例如,讓我們建立一個包含三個字串值的陣列,並使用 splice()
和 indexOf()
函式刪除一個字串值。請參考下面的程式碼。
var myArray = ['one', 'two', 'three'];
var myIndex = myArray.indexOf('two');
if (myIndex !== -1) {
myArray.splice(myIndex, 1);
}
console.log(myArray)
輸出:
["one", "three"]
在上面的程式碼中,我們使用 if
語句來檢查該值是否存在於陣列中。如果該值存在,則其索引不會為 -1;否則,它將是-1。indexOf()
函式返回給定值的索引,如果它不存在於陣列中,函式將返回 -1。如果該值存在於陣列中,我們將使用 splice()
函式刪除 myIndex
中存在的 1 個值。我們還可以通過在 splice()
函式中將其定義為第二個引數來從陣列中刪除多個值。console.log()
函式將在控制檯上從陣列中刪除專案後顯示新陣列。
使用 JavaScript 中的 filter()
函式按值從陣列中刪除專案
要按值從陣列中刪除專案,我們可以使用 JavaScript 中的 filter()
函式。filter()
函式用於通過對陣列的每個值應用 filter()
函式內部定義的函式來過濾給定陣列中的值。在我們的例子中,我們將在 filter()
函式內定義一個函式,它將返回所有值以接受我們想要從陣列中刪除的值,並將結果儲存在一個新陣列中。例如,讓我們建立一個包含三個字串值的陣列,然後使用 filter()
函式,我們將建立另一個陣列,該陣列將包含第一個陣列的所有值,但要刪除的值除外。這樣,我們原來的陣列就不會改變了。請參考下面的程式碼。
var myArray = ['one', 'two', 'three'];
var newArray = myArray.filter(function(f) {
return f !== 'two'
})
console.log(newArray)
輸出:
["one", "three"]
在上面的程式碼中,我們從陣列中刪除了值 two
並將結果儲存在變數 newArray
中,該變數將顯示在控制檯上。