Хорошо, это на самом деле просто. Давайте go шаг за шагом.
var count = {};
Объявляет объект JS. Это в основном хранилище ключей. Вы можете получить доступ к значению ключа, написав count[key]
. Затем сохраните или извлеките значение.
Рассмотрите этот простой пример:
var count = {}
count['ok'] = 3
console.log(count)
Он выводит { ok: 3 }
Теперь замените 'ok' на число, и вы получите структура остальной части кода: ключи добавляются к объекту для каждого числа, найденного в массиве, или увеличиваются, когда они существуют.
Давайте продолжим с кодом.
uniqueCount.forEach(function(i) {
// code here is called for each entry in the uniqueCount array, i being the current value.
});
И, наконец, здесь происходит волшебный c:
count[i] = (count[i] || 0) + 1;
Слева направо, он читает: присвойте свойству i
объекта count
значение, которое является его текущим значением или 0, если его нет, то добавьте 1. Поэтому, если число i
уже было замечено, оно принимает предыдущее значение и добавляет 1; если его не видели, он принимает 0 и добавляет единицу.
Поэтому, когда вы сохраняете console.log (count), вы получаете значения для всех этих свойств.