Решение JavaScript HackerRank: сравните тройки

Вот сравнение нескольких решений задачи «Сравнить тройки» на сайте HackerRank с использованием JavaScript. Эта задача включает в себя сравнение двух массивов одинаковой длины и подсчет того, во сколько раз соответствующие элементы в массивах больше.

Метод 1: итеративный подход

function compareTriplets(a, b) {
  let aliceScore = 0;
  let bobScore = 0;
  for (let i = 0; i < a.length; i++) {
    if (a[i] > b[i]) {
      aliceScore++;
    } else if (a[i] < b[i]) {
      bobScore++;
    }
  }
  return [aliceScore, bobScore];
}

Метод 2: функциональный подход с использованием reduceи map

function compareTriplets(a, b) {
  const [aliceScore, bobScore] = a.reduce(
    ([alice, bob], current, index) => [
      alice + (current > b[index] ? 1 : 0),
      bob + (current < b[index] ? 1 : 0)
    ],
    [0, 0]
  );
  return [aliceScore, bobScore];
}

Метод 3: использование forEachи изменяемого объекта оценки

function compareTriplets(a, b) {
  const scores = { alice: 0, bob: 0 };
  a.forEach((value, index) => {
    if (value > b[index]) {
      scores.alice++;
    } else if (value < b[index]) {
      scores.bob++;
    }
  });
  return [scores.alice, scores.bob];
}