这种行为非常奇怪。我测试了这段代码,没有"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))