compareArrays
convert each pair to [0,1 or [1,0]
by trentHarlem
HTML
<div id='show'></div>
JavaScript
//'use strict'
//const show = document.getElementById('show')
const team1 = [5, 6, 7]
const team2 = [3, 6, 10]
const team3 = [7, 2, 10]
const team4 = [2, 10, 8]
const team5 = [1, 2, 3]
const team6 = [4, 5, 6]
// Working function with for loop ////////////////////////
function compareTriplets(a, b) {
const output = [0, 0]
for (let i = 0; i < a.length; i++) {
if (a[i] === b[i]) {
continue
} else
(a[i] > b[i]) ? output[0] += 1 : output[1] += 1;
}
return output
}
///// Working function with forEach
const compareBinary = (a, b) => {
let output = [0, 0];
a.forEach((n, i) => {
if (n !== b[i]) {n > b[i] ? output[0] += 1 : output[1] += 1}
})
return output
}
//console.log('Binary',compareBinary(team1, team2))
//console.log('Binary',compareBinary(team3, team4))
//console.log('Binary',compareBinary(team5, team6))
//////////// */
///// modded boolean from hr susrista && arthurazs python answer
// WORKING
function compareTripletsBOOL(a, b) {
let output = [0, 0]
for (let i in a) {
output[0] += (a[i] > b[i])
output[1] += (a[i] < b[i])
}
return output
}
/////////////
// reduce attempt 2
// ///////////////////////////////////////////////////
function compareReduce(a, b) {
//console.log('arguments',arguments)
const result = a.reduce(
(acc, cur, i) => {
// console.log('cur',cur,'b[i]',b[i]);
if (cur !== b[i]) {
acc[+(cur < b[i])] += 1;
}
return acc;
},
[0, 0]
);
return result;
}
console.log(compareReduce(team1, team2), 'reduce expect [1,1]');
console.log(compareReduce(team3, team4), 'expect [2,1]');
console.log(compareReduce(team5, team6), 'expect [0,3]');
//console.log(compareTripMap(team1, team2), ' MAP expect [1,1]')
//console.log(compareTripReduce(team1, team2), ' REDUCE expect [1,1]')
//console.log(compareTripReduce(team3, team4), ' REDUCE expect [2,1]')
console.log(compareTripletsBOOL(team1, team2), 'BOOL expect [1,1]')
console.log(compareTripletsBOOL(team3,...