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