You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript函数使其正确判断两数组存在共同元素并返回true?

问题分析与修改方案

你的checkArray函数当前逻辑是判断两个数组是否完全相同(长度一致且对应位置元素全部相等),但你的需求是判断两个数组是否至少包含一个共同元素,这就是函数返回false的核心原因。

修改方法

方法1:嵌套循环基础实现

遍历第一个数组的每个元素,在第二个数组中逐一比对,找到相同元素则立即返回true,遍历结束未找到则返回false:

const array_one = [
  "Apparel",
  "Footwear",
];

const array_two = [
  "Soap",
  "Footwear",
];

const checkArray = (arr1, arr2) => {
  for (let item of arr1) {
    for (let compareItem of arr2) {
      if (item === compareItem) {
        return true;
      }
    }
  }
  return false;
};

console.log(checkArray(array_one, array_two)); // 输出 true

方法2:some()+includes()简洁实现

利用数组内置方法简化代码,可读性更强:

const array_one = [
  "Apparel",
  "Footwear",
];

const array_two = [
  "Soap",
  "Footwear",
];

const checkArray = (arr1, arr2) => arr1.some(item => arr2.includes(item));

console.log(checkArray(array_one, array_two)); // 输出 true

方法3:Set优化性能(适合大数据量)

将其中一个数组转为Set,利用Set的O(1)查找特性提升效率,避免嵌套循环的O(n²)复杂度:

const array_one = [
  "Apparel",
  "Footwear",
];

const array_two = [
  "Soap",
  "Footwear",
];

const checkArray = (arr1, arr2) => {
  const set = new Set(arr2);
  return arr1.some(item => set.has(item));
};

console.log(checkArray(array_one, array_two)); // 输出 true

内容的提问来源于stack exchange,提问作者Ptrades

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:48:24