js数组方法 - 检测两个数组是否有重复项

项目里面有个需求,是检测两个数组里面是否有相同的重复项,有则返回 true,没有则返回 false,并且不需要获取重复项的数据。
如果是需要获取重复项的数据,那肯定需要遍历循环,但是既然只要简单知道是否重复,就没有必要一个个去遍历,直接用 ES6 的新数据类型 Set 即可,因为他有一个特性是每个元素都不重复,因此经常被用来做数组去重。
通过它的这个特性,自然也可以检测重复,将需要检测的两个数组合并成一个 Set,如果长度小于两个数组的长度之和,那么肯定存在重复项。

 function isInArry(arr1, arr2){
     let new_arr = new Set([...arr1, ...arr2])
     return new_arr.size < (arr1.length + arr2.length)
 }

原文地址:https://www.cnblogs.com/linxue/p/11002104.html

时间: 2024-09-30 14:33:04

js数组方法 - 检测两个数组是否有重复项的相关文章

js通用方法检测浏览器是否已安装指定插件(IE与非IE通用)

/* * 检测是否已安装指定插件 * * pluginName 插件名称 */ function checkPlugins(pluginName) { var np = navigator.plugins; if (window.ActiveXObject) { // IE // ActiveXObject的对象名 var activexObjectName = pluginName + "." + pluginName; try { var axobj = eval("ne

java实现原数组根据下标分隔成两个子数组并且在原数组中交换两个子数组的位置

此类实现:输出一行数组数据,根据输入的下标,以下标位置为结束,将原数组分割成两组子数组.并交换两个子数组的位置,保持子数组中的元素序号不变.如:原数组为7,9,8,5,3,2 以下标3为分割点,分割为子数组一:7,9,8,5.和子数组二:3,2.经过交换算法后的结果应为:3,2,7,9,8,5 有两种交换算法<1>前插法:将子数组3,2另存在一个临时数组中,将原数组7,9,8,5,3,2每一位向后移两个位置  再将子数组3,2插入到移动好元素位置的原数组中.<2>逆置法:将原数组7

给定两个数组,这两个数组是排序好的,让你求这两个数组合到一起之后第K大的数。

题目:给定两个数组,这两个数组是排序好的,让你求这两个数组合到一起之后第K大的数. 解题思路: 首先取得数组a的中位数a[aMid],然后在b中二分查找a[aMid],得到b[bMid],b[bSt]到b[bMid]的数小于等于a[aMid],b[bMid+1]到b[bEd]大于等于a[aMid],这样数组a和数组b就被划分为了两个部分,第一个部分的数小于等于a[aMid],第二部分的数大于等于a[aMid],然后统计这两个区域数的个数,个数相加等于k就返回,否则重复二分查找.代码如下: def

三种方法求解两个数组的交集

package com.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; //求两个数组的交集 public class FindIntersectionBetweenTwoArrays { //算法一:暴力搜索,时间复杂度O(n^2),空间复杂度O(1) public ArrayList

数组去重和两个数组求交集

引言 今天在项目中一个功能要用到两个数组求交集的算法. 大概是这样: 两个表格分别用easyui datagrid实现,要把A表格的一列数据和B表格的一列数据取出来,然后去重,去重后求交集. 那么在计算出的交集中分别根据求出的数据选中两个表格的对应行. 故用到js数组去重和求交集. 交集 Array.prototype.intersect = function(b) { var flip = {}; var res = []; for(var i=0; i< b.length; i++) fli

Json、数组方法、随机函数、数组去重

一.Json 1Json(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 2.Json语法规则 在 JS 语言中,一切都是对象.因此,任何支持的类型都可以通过 JSON 来表示,例如字符串.数字.对象.数组等.但是对象和数组是比较特殊且常用的两种类型: 对象表示为键值对 数据由逗号分隔 花括号保存对象 方括号保存数组 3.JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号

数组方法总结---改变原数组和不改变数组

<script>先来看看基础 // 1 数组定义方法 new Array 或 字面量 var arr = new Array() var arr1 = [1, 2, 3, 4, 5, 6] </script> 需要注意的是 new Array()创建的数组只有一位的时候,第一位代表的数组长度,而不是第一位的值,而且不能为小数 接下来是数组方法:可以先分为两类  改变原数组和不改变原数组 改变原数组:push() 用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度 //

leetcode的题4:给定两个有序数组,求两个数组的中间值。

我的思路是,既然是有序数组,就可以按照归并排序法的思路,按照最后的归并过程. 建立一个新的数组,并对两个数组及归并数组目前的位置分别编号i,j,k. 将两个数组中较小的值推入i的位置,然后将被提取数据的数组及归并数组索引+1. 这个过程中需要考虑的问题是如果其中一个数组已经全部提取完成应如何处置. 以下是我的代码: class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<i

js小方法积累,将一个数组按照n个一份,分成若干数组

1 // 把一个数组按照一定长度分割成若干数组 2 function group(array, subGroupLength) { 3 let index = 0; 4 let newArray = []; 5 while(index < array.length) { 6 newArray.push(array.slice(index, index += subGroupLength)); 7 } 8 return newArray; 9 } 10 11 let numberArray = [