为什么"for of"循环的行为很奇怪?

  • 本文关键字:循环 for of javascript web
  • 更新时间 :
  • 英文 :


这种行为非常奇怪。我测试了这段代码,没有"For "循环,这很好。它有什么问题?

它应该计数唯一的元素

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))

显示错误的值

怎么回事?

事实证明,您的计数器需要在每次迭代中递增,而不仅仅是当if语句为true时。因此,将它传递给下面的行。

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))

最新更新