欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 去重

傅智翔1年前7瀏覽0評論

在日常的開發工作中,我們經常需要處理數組中的重復元素問題。而使用Javascript去重是一種非常方便、高效的方法。下面將詳細介紹Javascript去重的幾種方式。

首先,最簡單的一種方式是使用for循環來遍歷數組,然后將已經訪問過的元素與后續的元素進行比較,如果相同就將其從數組中刪除。如下所示:

function unique1(arr){
for(var i=0;i

但這種方式的效率較低,特別是在遇到大量元素的數組時,耗費的時間會非常長。

接下來,就引入了一種高效的去重方式——使用ES6的Set對象。

function unique2(arr){
return Array.from(new Set(arr))
}

Set對象是ES6的一個新特性,其可以接受任何可迭代對象作為參數,包括類數組對象和字符串等。Set對象可以用來存儲不重復的值,因此非常適合用來進行去重操作,而且其效率非常之高。

除此之外,我們還可以使用Map對象進行去重操作。

function unique3(arr){
const map = new Map();
return arr.filter(item =>!map.has(item) && map.set(item,1))
}

Map對象是一種鍵/值對的集合,其中每個鍵只能對應一個值。在這個例子中,我們使用Map對象的has()方法判斷元素是否出現過,如果沒有出現過,則將其添加到Map對象中,最終返回去重后的數組。

最后,我們還可以使用reduce()方法對數組進行去重。

function unique4(arr){
return arr.reduce((prev,cur) =>prev.includes(cur) ? prev : [...prev,cur],[]);
}

reduce()方法對數組的每個元素執行一個由您提供的reducer函數,該函數將每個元素映射到一個新的值。在這個例子中,我們使用prev數組存儲之前出現過的元素,cur參數表示當前元素。通過includes()判斷cur是否在prev數組中出現過,如果未出現過就將其添加到prev數組中。最終返回去重后的數組。

通過以上的介紹,我們可以看到Javascript去重有多種方法,每種方法都有其優缺點,需要根據具體場景選擇最適合的方式。