首页 > 其他分享 >比较两个数组中是否有相同的元素

比较两个数组中是否有相同的元素

时间:2024-07-09 09:42:59浏览次数:17  
标签:hasCommonElement arr1 相同 元素 st let arr2 数组 集合

双重遍历循环

太过复杂

点击查看代码
let arr1 = [1, 2, 3];
let arr2 = [1, 2, 3, 4];

let hasCommonElement = false;
for (let i = 0; i < arr1.length; i++) {
  for (let j = 0; j < arr2.length; j++) {
    if (arr1[i] === arr2[j]) {
      hasCommonElement = true;
      break; // 找到相同元素后,退出内层循环
    }
  }
  if (hasCommonElement) {
    break; // 找到相同元素后,退出外层循环
  }
}

console.log(hasCommonElement) // 输出结果

集合-Set

let arr1 = [1, 2, 3]
let arr2 = [1, 2, 3, 4]

let set1 = new Set(arr1)
let hasCommonElement = arr2.some(element => set1.has(element))

console.log(hasCommonElement) // 输出结果

ES6提供了新的数据解构Set

  • 类似于数组,但成员的值都是唯一的
  • 集合实现了 iterator 接口,所以可以使用『扩展运算符』和『for...of』进行遍历。
  1. 定义一个Set集合:
let st1=new Set()
let st2=new Set([可迭代对象])

2.集合的属性和方法

st.size:返回集合个数
st.add(item):往集合中添加一个新元素 item,返回当前集合
st.delete(item):删除集合中的元素,返回 boolean 值
st.has(item):检测集合中是否包含某个元素,返回 boolean 值
st.clear():清空集合
集合转为数组:[...st]
合并两个集合:[...st1, ...st2]

数组的includes()和some()

let arr1 = [1, 2, 3]
let arr2 = [1, 2, 3, 4]

let hasCommonElement = arr1.some(element => arr2.includes(element))

console.log(hasCommonElement) // 输出结果

标签:hasCommonElement,arr1,相同,元素,st,let,arr2,数组,集合
From: https://www.cnblogs.com/Z2201210269/p/18289398

相关文章

  • 代码随想录算法训练营第27天 | 122.买卖股票的最佳时机 II 55. 跳跃游戏 1005.K次取反
    122.买卖股票的最佳时机II给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润。解题:思路:最终利润是可......
  • 代码随想录刷题day 6 | 哈希表理论基础 242.有效的字母异位词 349. 两个数组的交
    242.有效的字母异位词383.赎金信classSolution{//这里只给出了242的代码,赎金信的解法可以说是基本相同的publicbooleanisAnagram(Strings,Stringt){int[]map=newint[26];for(charc:s.toCharArray())map[c-'a']++;for(char......
  • 第三章 MATLAB矩阵的操作的目录【向量元素的引用】
    向量元素的引用有两种:(1)提取向量中的单个元素(2)提取向量中的多个元素可以利用向量中包含的元素个数来描述一个向量的大小。在MATLAB中,使用length函数或numel函数来计算向量中包含的元素个数。向量的元素a1a2a3......an索引(下标)123n在MATLAB中,向量......
  • 高效维护区间之和/区间最值的数据结构(一)——树状数组
    高效维护区间之和/区间最值的数据结构(一)——树状数组树状数组的核心思想:分治。将数组以二叉树的形式进行维护区间之和。设aaa为原数组,......
  • 代码随想录算法训练营第五天|LeetCode242.有效的字母异位词 LeetCode 349. 两个数组的
    代码随想录算法训练营Day5代码随想录|LeetCode242.有效的字母异位词LeetCode349.两个数组的交集LeetCode202.快乐数LeetCode1.两数之和文章目录代码随想录算法训练营前言代码随想录原文--哈希表今天的内容真的很有挑战o(╥﹏╥)o,做了很久一、哈希表基础理论1......
  • LeetCode 523. 连续的子数组和
    523.连续的子数组和给你一个整数数组 nums 和一个整数 k ,如果 nums 有一个 好的子数组 返回 true ,否则返回 false:一个 好的子数组 是:长度 至少为2 ,且子数组元素总和为 k 的倍数。注意:子数组 是数组中 连续 的部分。如果存在一个整数 n ,令整数 x......
  • LeetCode 974. 和可被 K 整除的子数组
    974.和可被K整除的子数组给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。子数组 是数组中 连续 的部分。示例1:输入:nums=[4,5,0,-2,-3,1],k=5输出:7解释:有7个子数组满足其元素之和可被k=5整除:[4,5,0......
  • 01.数组
    在Go语言中,数组是一种固定长度的序列,它可以存储相同类型的元素。下面详细介绍数组的定义、初始化、访问和操作。数组的定义数组的定义语法为:[n]T,其中n表示数组的长度,T表示数组元素的类型。packagemainimport"fmt"funcmain(){//定义一个长度为5的整数......
  • C语言 指针和数组——指针数组的应用:命令行参数
    目录命令行参数演示命令行参数与main函数形参间的关系命令行参数什么是命令行参数(CommandLineArguments)?GUI界面之前,计算机的操作界面都是字符式的命令行界面(DOS、UNIX、Linux)例如,在DOS下拷贝文件用copyfile1.cfile2.c不......
  • std::vector 中查找某个元素是否存在
    std::vector中不存在直接查找某个元素是否存在的方法,一般是通过<algorithm>中的std::find,std::find_if,std::count,std::count_if等方法的返回值来判断对应元素是否存在。如当vector中存储的元素为double类型时,需要设定其精度,判断代码如下#include<vector>#include......