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

如何在JavaScript循环中判断当前id与前一个id是否相同?

判断forEach循环中当前元素ID与前一个元素ID是否相同

针对你给出的数组和forEach循环场景,有两种简单的方式可以判断当前元素的ID和前一个元素的ID是否相同:

方法一:用外部变量存储前一个ID

在循环外部声明一个变量来保存上一轮循环的ID,每次循环时和当前ID对比,对比完成后更新变量值:

const array = [
  { id : 1, name: 'aaa' },
  { id : 1, name: 'asd' },
  { id : 2, name: 'asd' }
];

let prevId; // 初始化存储前一个ID的变量

array.forEach(a => {
  // 从第二个元素开始才做对比(第一个元素没有前一个)
  if (prevId !== undefined) {
    const isSameId = a.id === prevId;
    console.log(`当前ID ${a.id} 和前一个ID ${prevId} 是否相同:${isSameId}`);
  }
  // 更新前一个ID为当前ID,供下一次循环使用
  prevId = a.id;
});

方法二:利用forEach的索引参数获取前一个元素

forEach的回调函数支持第二个参数——当前元素的索引,我们可以通过索引直接从数组中取出前一个元素,再对比两者的ID:

const array = [
  { id : 1, name: 'aaa' },
  { id : 1, name: 'asd' },
  { id : 2, name: 'asd' }
];

array.forEach((a, index) => {
  // 索引大于0时,才有对应的前一个元素
  if (index > 0) {
    const prevItem = array[index - 1];
    const isSameId = a.id === prevItem.id;
    console.log(`当前ID ${a.id} 和前一个ID ${prevItem.id} 是否相同:${isSameId}`);
  }
});

注意点

  • 如果数组是空数组或者只有一个元素,两种方法都不会触发对比逻辑,符合实际需求(没有前一个元素可对比)。
  • 两种方法都能直接在你原有的forEach循环结构上修改实现,不需要额外调整数组结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:27:13