Policz unikalne elementy w tablicy bez sortowania

W JavaScript poniżej znajdzie się liczba elementów w tablicy. Zakładając, że w tablicy będzie minimum jeden element

arr = ["jam", "beef", "cream", "jam"]
arr.sort();
var count = 1;
var results = "";
for (var i = 0; i < arr.length; i++)
{
    if (arr[i] == arr[i+1])
    {
      count +=1;
    }
    else
    {
        results += arr[i] + " --> " + count + " times\n" ;
        count=1;
    }
}

Czy można to zrobić bez użycia sort () lub bez mutowania tablicy w jakikolwiek sposób? Wyobrażam sobie, że tablica musiałaby zostać ponownie utworzona, a następnie można by było sortować na nowo utworzonej tablicy, ale chcę wiedzieć, jaki jest najlepszy sposób bez sortowania. I tak, jestem artystą, a nie programistą, twoim honorem.

questionAnswers(5)

yourAnswerToTheQuestion