В Javascript я пытаюсь взять начальный массив числовых значений и подсчитать элементы внутри него. В идеале, результатом должны быть два новых массива, первый из которых определяет каждый уникальный элемент, а второй содержит количество раз, которое каждый элемент встречается. Тем не менее, я открыт для предложений по формату вывода.
Например, если исходный массив был:
5, 5, 5, 2, 2, 2, 2, 2, 9, 4
Затем будут созданы два новых массива. Первый будет содержать имя каждого уникального элемента:
5, 2, 9, 4
Второй будет содержать количество раз, когда этот элемент встречается в исходном массиве:
3, 5, 1, 1
Поскольку число 5 встречается три раза в исходном массиве, число 2 встречается пять раз, а 9 и 4 оба появляются один раз.
Я много искал решение, но, похоже, ничего не работает, и все, что я пробовал сам, оказалось до смешного сложным. Любая помощь будет оценена!
Спасибо :)
ramda.js
для достижения этого простым способом. const ary = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4]; R.countBy(r=> r)(ary)
arr.filter(x => x===5).length
возвратился бы, 3
чтобы указать, что есть '3' пятерки в массиве.
if (arr.indexOf(value) == arr.lastIndexOf(value))