6 лет назад
Сортировка и подсчет одинаковых элементов массива
Тут возникла задача автоматически посчитать одинаковые элементы массива. Сначала думал сортировать и сравнивать в цикле, но нашлось куда как более элегантное решение. var meArray = ["el1", "el2", ...]; var counts = meArray.reduce((map, val) => {map[val] = (map[val] || 0)+1; return map}, {} ); console.log (counts) При чём, там есть и более читаемое решение: var counts = {}; meArray.forEach(function(x) {counts[x] = (counts[x] || 0)+1; }); Но в одну строку ещё круче 🍉 Тут сразу возникает вопрос: как работает...