Currently delving into Javascript, I encountered a tricky challenge on Hackerrank that left me stumped. The task was to determine the number of pairs of socks in a given pile. After some searching, I stumbled upon a solution which utilized bracket notation with an empty object called socks. This approach returned both numbers and undefined values, leaving me puzzled. Why would this work? Socks was originally supposed to be empty.
function sockMerchant(n, arr) {
// var sorted = arr.sort();
let socks = {}
let pairs = 0;
for (let i=0; i < n; i++) {
// console.log(socks[arr[i]])
socks[arr[i]] = socks[arr[i]] + 1 || 1;
if (socks[arr[i]] % 2 === 0) {
pairs += 1
}
}
return console.log(pairs)
}
sockMerchant(11, [10, 20, 20, 10, 10, 30, 50, 10, 20, 50, 50])