技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類(lèi)目錄

贊助商

最新文章

搜索

[示例]詳解JavaScript中刪除數(shù)組重復(fù)項(xiàng)的三種方法

作者:admin    時(shí)間:2022-6-1 21:59:20    瀏覽:

JavaScript如何從數(shù)組中刪除重復(fù)項(xiàng)?在任何編程語(yǔ)言的面試中被廣泛詢(xún)問(wèn)的問(wèn)題之一(我們將在這里討論 JavaScript)是在數(shù)組中查找唯一元素或從數(shù)組中刪除重復(fù)項(xiàng),為解決在 JavaScript 中刪除數(shù)組中的重復(fù)項(xiàng)的廣泛?jiǎn)栴},本文將介紹三種常用的方法。

JavaScript數(shù)組中刪除重復(fù)項(xiàng)的三種方法

使用 Sets

在本示例中,我們將聲明一個(gè)包含重復(fù)元素的數(shù)組,即 animals 和一個(gè)包含所有唯一元素的數(shù)組 unique 。

Set 對(duì)象存儲(chǔ)任何類(lèi)型的唯一值,無(wú)論是原始值還是對(duì)象引用。

在這里,為了刪除重復(fù)項(xiàng),我們將 animals 數(shù)組轉(zhuǎn)換為 Set。new Set()將隱式刪除重復(fù)元素。然后我們將此集合轉(zhuǎn)換回 unique 數(shù)組。

// 使用Set刪除數(shù)組重復(fù)項(xiàng)  
let animals = ["Lion", "Rabbit", "Mouse", "Monkey", "Lion","Ape"]  
let unique = [...new Set(animals)]  
console.log(unique)  

輸出

['Lion', 'Rabbit', 'Mouse', 'Monkey', 'Ape']

使用Set刪除數(shù)組重復(fù)項(xiàng)

使用 Filter

我們先看示例,然后分析其中使用了什么方法和為什么使用。

// 使用filter方法刪除數(shù)組重復(fù)項(xiàng)  
let animals = ["Lion", "Rabbit", "Mouse", "Monkey", "Lion","Ape"]  
let usingFilter = () => {  
return unique = animals.filter(function(item,index){  
      return animals.indexOf(item) == index;  
   });  
}  
console.log(usingFilter())   

輸出

['Lion', 'Rabbit', 'Mouse', 'Monkey', 'Ape']

使用filter刪除數(shù)組重復(fù)項(xiàng)

代碼解釋

indexOf()

此方法返回?cái)?shù)組中元素第一次出現(xiàn)的索引。我們使用重復(fù)項(xiàng)的邏輯是索引與其indexOf()值不同的項(xiàng),從這里我們返回當(dāng)前索引和indexOf()值相等的元素。

filter()

要?jiǎng)h除重復(fù)項(xiàng),我們使用filter()方法僅包含當(dāng)前索引與其indexOf()值匹配的元素。我們將這些值存儲(chǔ)在一個(gè)名為unique的數(shù)組中,并通過(guò)調(diào)用 filter() 函數(shù)返回它們。

為了更好地理解,在我們的例子中,程序執(zhí)行邏輯是這樣的:

當(dāng)前索引 -> indexOf(),

  • 對(duì)于值“Lion”,我們有:0 -> 0, 4 -> 0。(等式不成立)
  • 對(duì)于值“Rabbit”,我們有:1 -> 1。(等式成立,唯一元素)
  • 對(duì)于值“Mouse”,我們有:2 -> 2。(等式成立,唯一元素)
  • 對(duì)于值“Monkey”,我們有:3-> 3。(等式成立,唯一元素)
  • 對(duì)于值“Ape”,我們有:5 -> 5。(等式成立,唯一元素)

過(guò)濾這些獨(dú)特的元素并將它們存儲(chǔ)在一個(gè) 獨(dú)特的數(shù)組中并返回它們。

如果我們需要使用此方法在數(shù)組中查找重復(fù)項(xiàng),我們只需將相等 (==) 條件改為 (!=) 即可。

使用 forEach

同樣,我們先看示例,然后再了解這里使用的術(shù)語(yǔ)。

// Remove duplicates in array using forEach loop method  
let animals = ["Lion", "Rabbit", "Mouse", "Monkey", "Lion","Ape"]  
let unique = [];  
animals.forEach((item) => {  
   if(!unique.includes(item)){  
      unique.push(item);  
   }  
});  
console.log(unique);  

輸出

['Lion', 'Rabbit', 'Mouse', 'Monkey', 'Ape']

使用forEach刪除數(shù)組重復(fù)項(xiàng)

代碼解釋

forEach

用于迭代 animal 數(shù)組的每個(gè)元素 。

includes()

如果元素在數(shù)組中,則返回 true,否則返回 false。

push()

它將新項(xiàng)目添加到數(shù)組的末尾。

該方法背后的邏輯是我們聲明了一個(gè)空 unique 數(shù)組,然后我們迭代 animal 數(shù)組的每個(gè)元素, 檢查 unique 數(shù)組是否包含(或具有)該元素,如果沒(méi)有,條件就變?yōu)?strong>true,那么我們將該元素推送到 unique 的數(shù)組中。所以,通過(guò)這個(gè)過(guò)程,我們得到了 unique 數(shù)組中的所有唯一元素并打印出來(lái)。

總結(jié)

在本文中,我們學(xué)習(xí)了三種重要的、簡(jiǎn)短且易于掌握的方法來(lái)從數(shù)組中刪除重復(fù)項(xiàng)或從數(shù)組中查找重復(fù)項(xiàng)或唯一元素。還有許多其他方法可以做同樣的事情,但這些方法很容易記住。

參考文章

相關(guān)文章

標(biāo)簽: 數(shù)組  Set  filter  forEach  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */