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

Google Apps Script多数组遍历:识别无Tier的账户

问题说明

有三个数组:

const arr1 = ['Acc2','Acc2', 'Acc3', 'Acc3', 'Acc3', 'Acc4', 'Acc6', 'Acc6', 'Acc6'];
const arr2 = ['5','', '', '', '', '', '10', '', ''];
const arr3 = ['23','24', '25', '26', '27', '28', '30', '31', '32'];
  • arr1 存储账户名称,arr2 存储对应账户的层级(仅在账户首次出现的位置填写,其余对应位置为空),arr3 存储对应账户的行号,三个数组元素一一对应。
  • 当前 Acc3 和 Acc4 在 arr2 中无对应层级值,需要在Google Apps Script中遍历数组,生成以arr3元素为键、值为"No error"或"Error"的字典,示例输出:
const output_dict = { 
  '23' : 'No error',
  '24' : 'No error',
  '25' : 'Error',
  '26' : 'Error',
  '27' : 'Error',
  '28' : 'Error',
  '30' : 'No error',
  '31' : 'No error',
  '32' : 'No error'
};
实现方案

核心逻辑

  1. 先遍历数组,标记每个账户是否拥有有效层级值(即首次出现时arr2对应位置非空)。
  2. 再次遍历数组,根据账户的层级有效性,为每个行号映射对应的状态值。

Google Apps Script 代码

function generateErrorDict() {
  // 输入数组
  const arr1 = ['Acc2','Acc2', 'Acc3', 'Acc3', 'Acc3', 'Acc4', 'Acc6', 'Acc6', 'Acc6'];
  const arr2 = ['5','', '', '', '', '', '10', '', ''];
  const arr3 = ['23','24', '25', '26', '27', '28', '30', '31', '32'];
  
  // 记录每个账户是否有有效层级
  const accountValidity = {};
  const processedAccounts = new Set();
  
  for (let i = 0; i < arr1.length; i++) {
    const account = arr1[i];
    if (!processedAccounts.has(account)) {
      processedAccounts.add(account);
      // 去除首尾空格后判断是否为空
      accountValidity[account] = arr2[i].trim() !== '';
    }
  }
  
  // 生成结果字典
  const outputDict = {};
  for (let i = 0; i < arr1.length; i++) {
    outputDict[arr3[i]] = accountValidity[arr1[i]] ? 'No error' : 'Error';
  }
  
  // 输出结果
  console.log(outputDict);
  return outputDict;
}

代码说明

  • 第一遍遍历中,使用Set避免重复处理同一账户,仅检查每个账户首次出现的arr2值,将账户的有效性存入accountValidity对象。
  • 第二遍遍历直接根据行号对应的账户有效性,填充结果字典。
  • 运行函数后,可通过Google Apps Script的日志查看生成的字典,也可直接返回该对象用于后续业务逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:20:59