1

Why do "for of" loop behave very strangely?

This behaviour is very strangely. I tested this code without "For of" loop and that was good. What problem does it have?

It’s supposed to count unique elements.

function countIdentic(arr) {
  let sum = 0
  let counter = 1
  for (let a of arr) {
    if (arr.includes(a, counter)) {
      sum++
      counter++
    }
  }
  return sum
}
let mf = [9, 8, 7, 6, 5, 4, 3, 2, 1, 10]

console.log(countIdentic(mf))

Displays wrong value

What the thing?

Submitted October 11th 2021 by Admin

Answers
0

It turns out that your counter needs to be incremented in every iteration, not only when the if statement is true. So pass it to the line below.

function countIdentic(arr) {
let sum = 0
let counter=1
for(let a of arr){ if(arr.includes(a,counter)){ sum++; } counter++;
} return sum
}
let mf=[9,8,7,6,5,6,5,4,3,2,1,10] console.log(countIdentic(mf))

Admin | 1 week ago



Relevant Questions