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

JavaScript数组比对:判断数组A是否包含数组B元素并生成结果数组

问题解决:数组元素存在性比对

错误原因分析

你的代码存在两个核心问题:

  • 判断逻辑完全颠倒:你用数组A(allObjectivesArray)去检查是否包含某个值,而正确逻辑应该是检查数组A的当前元素是否存在于数组B(reducedArr[0])中。
  • 不必要的索引取值:reducedArr[0][element - 1]是多余的错误写法,直接使用遍历到的element即可。

这两个问题导致了你得到错误结果,比如第一个元素1,你实际在判断数组A是否包含reducedArr[0][0](也就是2),数组A确实包含2,所以错误地push了true,而非判断1是否在数组B中。

正确代码实现

方式1:使用forEach

let isAdded = [];
allObjectivesArray.forEach(element => {
  // 直接检查当前元素是否存在于数组B中
  isAdded.push(reducedArr[0].includes(element));
});

方式2:使用map(更简洁)

map方法可直接生成结果数组,无需手动push:

const isAdded = allObjectivesArray.map(element => reducedArr[0].includes(element));

验证结果

运行上述代码后,isAdded会得到预期结果:[false, true, false, true, false, false, false],完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:50:38