Вот сравнение нескольких решений задачи «Сравнить тройки» на сайте 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];
}