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

NO IMAGE

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

導讀

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

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

1. 使用Set和Array.from

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

2. 使用Array.filter和Array.indexOf

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

3. 使用Array.reduce和Array.includes

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

數組對象去重

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

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

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

2. 利用Map的鍵不可重複

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

數組添加不可重複的項

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

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

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

相關文章

線性代數精華——講透矩陣的初等變換與矩陣的秩

CID規範

跨域詳解(HTTPCORS)

大廠面試中遇到的幾十道webpack與react面試題