【问题标题】:How to compare items in array using index numbers?如何使用索引号比较数组中的项目?
【发布时间】:2026-01-16 08:25:02
【问题描述】:

如何使用索引号将数组中的一项与下一项或上一项进行比较以下面的代码为例

const arr = [
  {
    name: "A",
    marks: 20,
  },
  {
    name: "B",
    marks: 25,
  },
  {
    name: "C",
    marks: 30,
  },
];

那么如何在 if 语句中使用索引号比较 B 与 A 或 C 以完成某事?

【问题讨论】:

  • 不清楚你到底想要什么?请具体说明,您应该添加您的预期结果?
  • 注意:如果您使用的是索引,那么您可以分别使用i-1i+1previousnext...
  • 例如,如果我正在尝试创建一个图形,那么我想根据与数组中前一个项目的比较(倾斜或下降)来制作绿色和红色的条形图,所以如果一个对象的某些数字属性在一个数组中大于前一个对象的相同属性,而不是我想让条形变为绿色,否则我想让条形变为红色。
  • 那么第一个属性呢。应该是red 还是green?因为没有属性可以与之比较。
  • 你在这里使用什么循环来迭代数组

标签: javascript arrays object if-statement comparison


【解决方案1】:

如果您使用的是forEach,那么您可以这样做:

注意:根据您的需要处理i === 0的第一种情况

const arr = [
  {
    name: "A",
    marks: 20,
  },
  {
    name: "B",
    marks: 25,
  },
  {
    name: "C",
    marks: 30,
  },
];

const result = [];
arr.forEach((obj, index, sourceArr) => {
  if (index === 0) result.push(undefined);
  else {
    obj.marks > sourceArr[index - 1].marks
      ? result.push("green")
      : result.push("red");
  }
});

console.log(result);

【讨论】: