一行代码解决求重问题

news/2024/7/19 14:19:44 标签: js, 求重

对需求的深刻认知,决定了解决问题的技巧高度

问题

例如:var a=[[1,2,3,5], [2,3,4], [2,3], [2,3,6,7]];
输出:[2,3]
例如:var a=[[0,1,2,3,5],[-1,1,4,5,6,7],[1,2,3,5,6]];
输出:[1,5]

常规

一般人会考虑降维,去重,计数,过滤,如下所示

var a = [[1, 2, 3, 5], [2, 3, 4], [2, 3], [2, 3, 6, 7]];
// 1.降维
var arr1 = [].concat(...a)
console.log(arr1)

// 2.去重
var uniq = [...new Set(arr1)]
console.log(uniq)

// 3. 计数
var counter = arr1.reduce((acc, v) => {
    if (v in acc) {
        acc[v]++
    } else {
        acc[v] = 1
    }
    // 4.非重
    // if(acc[v] > 1 && uniq.indexOf(v) > -1){
    //     uniq.splice(uniq.indexOf(v),1)
    // } 
    return acc
}, {})
console.log(counter)

// 4.求重
var duplicate = uniq.filter(e => counter[e] > 1)
console.log(duplicate)

打印

[ 1, 2, 3, 5, 2, 3, 4, 2, 3, 2, 3, 6, 7 ]
[ 1, 2, 3, 5, 4, 6, 7 ]
{ '1': 1, '2': 4, '3': 4, '4': 1, '5': 1, '6': 1, '7': 1 }
[ 2, 3 ]

一行

回归需求本质,实质上是求二维数组中各个元素(数组)之间的交集,
因此可选择任意一数组,用其中每个元素通过断言过滤其是否在每一子成员数组中。
思路: 过滤 --> 迭代 --> 断言

var dup = a[0].filter(item => a.every(arr =>arr.includes(item)))
console.log(dup)     // 输出 [ 2, 3 ]

http://www.niftyadmin.cn/n/642176.html

相关文章

人生自古谁无恼

活了20年对这个世界了解的也不过如此今天才开始觉得自己是如此的天真总以为正义无处不在公道自在人心可是越接触这个社会越觉得厌倦越来越让人倒胃口人都是自私的如果不先看到自己的利益绝对不会冲在前面人也是狡猾的只要能够受欢迎 只要能够有利益有时会做出一些出格的是比如陷…

pptx 批量操作幻灯片

本文示例使用python-pptx模块批量生成幻灯片,批量修改导入幻灯片表格内容及格式,以及在指定页插入表格 前言 一个prs对象就是一棵树,它的下面挂载了多张幻灯片slide,而每张幻灯片下有多个shape实例,也就是你在制作幻灯…

从生物体系来看,目前的计算机还没有实现真正的智能

如何才能让人工智能更进一步走向人脑智能?之前我们对智能的研究又缺失了什么以至于计算机实现的智能与人脑的智能之间存在越不过去的坎? 首先有几个问题。 人工智能成为专门的学科诞生以来,经历了几次起落,在人们的期望和失望中摆…

云计算企业获得风险投资的情况统计

我把云计算企业(大部分为未上市企业)近几年获得风险投资的情况统计了一下,单位是百万美元. 从投资情况看,美国的风投界对云计算这种模式还是很肯定的,不乏有很多企业融到几千万美元的,也有很多天使投资,而且从近期看这种趋势也是愈演愈烈.很多上市公司更…

xlsxwriter 操作 Excel

xlsxwriter 简介 用于以Excel 2007 XLSX文件格式编写文件 优点 文本,数字和公式写入,速度很快,占用内存小支持诸如格式设置,图像,图表,页面设置,自动过滤器,条件格式设置等功能 …

JCaptcha 简介 - CMU开源的web图片验证码项目

转自:https://blog.csdn.net/xiao190128/article/details/54907723 CAPTCHA 全称 Completely Automated Public Turing Test to Tell Computers and Humans Apart,最早作为卡内基梅隆大学的一个科研项目,用于生成一个人类容易通过而计算机难以…

defer vs return

defer 看起来与try…catch 类似,其实有许多不为人知的小技巧 defer 官方行文defer先进后出,对return进行一些扫尾工作。这意味着使用该函数在返回值之前,defer函数内是可以访问使用defer的函数内任意变量。那么问题来了,在defer函…

JSP+Servlet实现图片验证码

转自:https://blog.csdn.net/kkorkk/article/details/54292427 我们在登录或者注册的过程中,常常会发现有验证码的存在,今天我们自己动手来实现一个图片验证码。 首先,我们的验证码图片是在JSP页面中展示的,所以先从JS…