W JavaScript próbuję pobrać początkową tablicę wartości liczbowych i policzyć w niej elementy. Idealnie, wynikiem byłyby dwie nowe tablice, pierwsza określająca każdy unikalny element, a druga zawierająca liczbę wystąpień każdego elementu. Jestem jednak otwarty na sugestie dotyczące formatu danych wyjściowych.
Na przykład, jeśli początkowa tablica to:
5, 5, 5, 2, 2, 2, 2, 2, 9, 4
Następnie powstałyby dwie nowe tablice. Pierwszy zawierałby nazwę każdego unikalnego elementu:
5, 2, 9, 4
Drugi zawierałby liczbę wystąpień tego elementu w początkowej tablicy:
3, 5, 1, 1
Ponieważ liczba 5 występuje trzy razy w początkowej tablicy, liczba 2 występuje pięć razy, a 9 i 4 pojawiają się raz.
Dużo szukałem rozwiązania, ale wydaje się, że nic nie działa, a wszystko, co sam próbowałem, okazało się absurdalnie skomplikowane. Każda pomoc będzie mile widziana!
Dzięki :)
ramda.js
w prosty sposób. const ary = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4]; R.countBy(r=> r)(ary)
arr.filter(x => x===5).length
powróciłby, 3
aby wskazać, że w tablicy znajdują się piątki „3”.
if (arr.indexOf(value) == arr.lastIndexOf(value))