Я наткнулся на этот код, когда проверял, как найти число, которое встречается нечетное количество раз. Я пытался все понять, но понял это. Расскажите, пожалуйста, пошагово, что происходит и что означает каждая переменная.
Спасибо!
function findOdd(A) {
let counts = A.reduce((p, n) => (p[n] = ++p[n] || 1, p), {});
return +Object.keys(counts).find(k => counts[k] % 2) || undefined;