I have to find a unique number in unsorted array, but my function returns wrong number, I can't understand why. Here is my code:
function findUniq(arr) {
  let sorted = [...arr].sort();
  if (sorted.length === 0) return 0;
  // do magic
  let num = 0;
  for (let i = 1; i < sorted.length; i++) {
    if (sorted[num] !== sorted[i]) {
      num++;
      sorted[num] = sorted[i];
    }
  }
  return num + 1;
}
const testArray = [9, 7, 7, 9, 6, 6, 5, 5, 5];
console.log(findUniq(testArray));if I invoke findUniq([9,7,7,6,6,5,5,5]) it gives 4. What do I do wrong? Thanks in advance. I forgot to mention I have to have just one for loop to implement O(n) time complexity
 
     
     
     
     
    