JavaScript中,數組去重是一個基本的操作。一個數組若存在重復的元素,無疑會帶來許多不必要的問題,因此,對于數組去重,我們需要掌握最快的方法。
假設有如下數組:
const arr = [1, 2, 3, 4, 5, 2, 4, 6, 7, 3, 5];
我們可以使用以下方法進行數組去重:
1. 使用Set
const result = [...new Set(arr)]; console.log(result); // [1, 2, 3, 4, 5, 6, 7]
Set是一種集合類型,其中的元素是唯一的,不允許重復。通過將數組轉換成Set,然后再把Set轉成數組,即可得到去重后的數組。
2. 使用filter+indexOf
const result = arr.filter((item, index, array) =>array.indexOf(item) === index); console.log(result); // [1, 2, 3, 4, 5, 6, 7]
filter函數可以對數組中的每個元素進行篩選,而indexOf函數用于返回元素在數組中的位置,若不存在則返回-1。因此,我們可以通過filter和indexOf組合的方式,篩選出重復的元素并刪除。
3. 使用reduce+includes
const result = arr.reduce((prev, curr) =>prev.includes(curr) ? prev : [...prev, curr], []); console.log(result); // [1, 2, 3, 4, 5, 6, 7]
reduce函數用于將數組中的每個元素進行累加。在此例中,我們設定第一個參數prev為初始數組,第二個參數curr為當前元素。當prev中不存在curr元素時,我們將curr放入prev中,否則直接返回prev。
綜上所述,以上三種方法在時間復雜度和代碼簡潔性上較優。當然,隨著JavaScript的發展,我們可以使用更加高級的方法來進行數組去重。但無論如何,對于一個程序員來說,了解常用的語言特性是非常重要的。
上一篇Python畫多個箱線圖
下一篇python畫多彩玫瑰