從業務場景角度談數組去重

導讀

在前端開發中,常常要遇到去除數組中重複數據的問題,即所謂的數組去重。社區中有不少解決的辦法,好比雙層for循環、indexOf + filterSet等,有的還會考慮{},[]NaN是否重複,以及幾千萬條數據去重而致使的性能問題,但以實際業務開發場景來看,咱們遇到的大多數狀況是如何去除同一類型、數據量不大的重複數據,因此本文從業務場景角度出發,只列舉出幾種經常使用、簡單的數組去重辦法,若是你有更好的思路,歡迎留言區拍板。前端

數組去重(同一基本類型)

1. 使用Set和Array.from

set

2. 使用Array.filter和Array.indexOf

3. 使用Array.reduce和Array.includes

數組對象去重

顧名思義,數組裏面的項再也不是基本類型,在實際業務開發場景中,咱們須要根據對象指定的屬性去除重複的項。數組

1. 利用對象的鍵不可重複

2. 利用Map的鍵不可重複

數組添加不可重複的項

下圖是QQ音樂的搜索歷史列表,每當用戶輸入一個新的關鍵詞,便會把它添加到歷史列表的首位,若是出現了重複,須要刪除掉舊的那一項。實際上這裏也是數組對象去重的問題,解決思路很簡單,直接過濾掉舊的重複項,把新的一項添加到首位便可。 性能

相關文章
相關標籤/搜索