逐日 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.everyfn 来对数据项举行推断是不是反复涌现过。

运用场景

从后端或许数据库离别猎取到列入差别马拉松的用户并对这些用户做归集,经由过程 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

《逐日 30 秒 ⏱ 唯一数据集》

本文原稿来自
PushMeTop

    原文作者:zhangxiangliang
    原文地址: https://segmentfault.com/a/1190000018447109
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞