Google Apps Script:如何按条件合并二维数组中的同类项?
处理二维数组中带"trailing"前缀的条目
实现思路
- 用字典存储所有不带"trailing"前缀的父类别条目,键为标题,值为对应列表;
- 遍历数组中的"trailing"条目,去除前缀得到父标题,将对应数据追加到字典中父标题的列表末尾;
- 最后将字典的值转换为列表,得到目标结果。
代码实现
# 原始数组 array = [['trailingInterestExpense', 4], ['InterestExpense', 1, 2, 3], ['trailingIncomeTax', 4], ['IncomeTax', 10, 20, 30]] # 初始化字典存储父类别数据 data_dict = {} # 收集所有父类别条目 for item in array: title = item[0] if not title.startswith('trailing'): data_dict[title] = item.copy() # 处理带trailing前缀的条目,追加数据到对应父类别 for item in array: title = item[0] if title.startswith('trailing'): parent_title = title.lstrip('trailing') if parent_title in data_dict: data_dict[parent_title].extend(item[1:]) # 转换为目标数组格式 result = list(data_dict.values()) print(result)
运行结果
[['InterestExpense', 1, 2, 3, 4], ['IncomeTax', 10, 20, 30, 4]]
注:你给出的预期结果中IncomeTax末尾是40,但原始数组中trailingIncomeTax对应的数据是4,上述代码运行结果会在30后追加4。若实际需要追加40,只需修改原始数组中对应的值即可。
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

