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

在Google Apps Script中获取两个数组交集并保存至新数组

问题:JavaScript数组提取公共元素失败的原因及解决方法

你给出的两个数组定义存在关键语法错误,导致后续逻辑无法正常执行:

原始错误的数组定义

arr1 = [aaa,bbb,ccc,ttt,yyy]
arr2 = [abc,ttt,def,hij,ew,y,uuu]

在JavaScript中,字符串类型的数组元素必须用单引号(')或双引号(")包裹,否则aaa、bbb这类标识符会被当作未定义的变量,代码会直接抛出ReferenceError,后续的遍历、过滤逻辑根本无法运行。

修正后的解决方案

第一步:修正数组定义

先把数组元素用引号包裹,确保是合法的字符串数组:

const arr1 = ['aaa', 'bbb', 'ccc', 'ttt', 'yyy'];
const arr2 = ['abc', 'ttt', 'def', 'hij', 'ew', 'y', 'uuu'];

方法一(for循环遍历)修正后

你的循环逻辑本身是正确的,修正数组后即可得到预期结果:

let Same_items = [];
for(let i = 0; i < arr1.length; i++) {
  if(arr2.indexOf(arr1[i]) !== -1) {
    Same_items.push(arr1[i]);
  }
}
console.log(Same_items); // 输出: ['ttt']

方法二(filter+includes)修正后

你的过滤逻辑同样正确,注意代码里的var Same_itema = [];是多余的变量定义,且变量名拼写有误(Same_itema应为Same_items),修正后执行即可:

const Same_items = arr1.filter(item => arr2.includes(item));
console.log(Same_items); // 输出: ['ttt']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:45:37