每日 30 秒 ⏱ 唯一的数据集
生活随笔
收集整理的這篇文章主要介紹了
每日 30 秒 ⏱ 唯一的数据集
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡介
數(shù)組、對象、唯一、只出現(xiàn)一次、差集
取出兩個對象數(shù)組中唯一的數(shù)據(jù)集,即差集。
// 該源碼來自于 https://30secondsofcode.org const filterNonUniqueBy = (arr, fn) =>arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j))); 復(fù)制代碼代碼分析
代碼使用了 Array.prototype.filter 來進(jìn)行遍歷數(shù)組并獲取過濾,通過 Array.prototype.every 和 fn 來對數(shù)據(jù)項進(jìn)行判斷是否重復(fù)出現(xiàn)過。
使用場景
從后端或者數(shù)據(jù)庫分別獲取到參加不同馬拉松的用戶并對這些用戶做歸集,通過 filterNonUniqueBy 來尋找只參加過一次馬拉松的用戶。
// 查詢到參加 2019廈門馬拉松的數(shù)據(jù) const join2019 = [{ id: 1, name: 'xiaoer', join: ['2019廈門馬拉松', '2018廈門馬拉松'] },{ id: 2, name: 'xiaosi', join: ['2019廈門馬拉松'] }, ]// 查詢到參加 2018年馬拉松的數(shù)據(jù) const join2018 = [{ id: 1, name: 'xiaoer', join: ['2019廈門馬拉松', '2018廈門馬拉松'] },{ id: 3, name: 'menty', join: ['2018廈門馬拉松'] }, ]// 合并數(shù)據(jù) const users = [...join2019, ...join2018]// 獲取只參加過一次的用戶 // 輸出: // [ // {id: 2, name: "xiaosi", sales: 50000}, // {id: 3, name: "menty", sales: 150000} // ] const joinOnce = filterNonUniqueBy(users, (a, b) => a.id === b.id) 復(fù)制代碼相似代碼
取出數(shù)組中唯一的數(shù)據(jù)集。
// 該源碼來自于 https://30secondsofcode.org const filterNonUnique = arr => arr.filter(i => arr.indexOf(i) === arr.lastIndexOf(i)) 復(fù)制代碼一起成長
在困惑的城市里總少不了并肩同行的 伙伴 讓我們一起成長。
- 如果您想讓更多人看到文章可以點個 點贊。
- 如果您想激勵小二可以到 Github 給個 小星星。
- 如果您想與小二更多交流添加微信 m353839115。
本文原稿來自 PushMeTop
轉(zhuǎn)載于:https://juejin.im/post/5c8a91a3e51d451e5d74ef1d
總結(jié)
以上是生活随笔為你收集整理的每日 30 秒 ⏱ 唯一的数据集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flutter学习之认知基础组件
- 下一篇: 搞懂MySQL分区