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

JavaScript/Google Script二维数组按列排序并将重复项移至顶部

解决方案

要实现将指定列重复项移至顶部,同时保持同组内的排序顺序,你可以先统计目标列值的出现频率,再在排序函数中优先按频率降序排序,频率相同的情况下沿用原有的localeCompare逻辑。

步骤1:统计目标列的出现频率

先遍历数组,用Map记录每个目标列值的出现次数:

// 统计第3列(索引2)的出现次数
const countMap = new Map();
values.forEach(item => {
  const key = item[2];
  countMap.set(key, (countMap.get(key) || 0) + 1);
});

步骤2:修改排序逻辑

在排序函数中,先比较两个元素目标列值的出现次数,次数多的排前面;次数相同时,再按原有的字符串排序规则处理:

values.sort((a, b) => {
  // 优先按出现次数降序
  const countDiff = countMap.get(b[2]) - countMap.get(a[2]);
  if (countDiff !== 0) {
    return countDiff;
  }
  // 次数相同则按原规则排序
  return a[2].localeCompare(b[2]);
});

验证结果

将上述代码应用到你的原始数组后,得到的结果与你的期望完全一致:

X7  Z2  fake5@fake.com
X9  Z5  fake5@fake.com
X4  Z6  fake6@fake.com
X8  Z6  fake6@fake.com
X3  Z7  fake7@fake.com
X5  Z7  fake7@fake.com
X5  Z1  fake1@fake.com
X9  Z8  fake8@fake.com
X1  Z9  fake8@fake.com.sn

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:02:41