Javascript:函数返回 0 而不是出现奇数次的数字

我正在尝试解决来自Codewars的挑战,您必须在数组中找到出现奇数次的数字。我修改了答案以返回出现奇数次且最频繁的数字。但它总是导致 0

counts={};


function findOdd(A) {

    for (var i=0; i<A.length; i++){

      if ((typeof counts["a" + toString(A[i])]) !== 'undefined'){

        counts["a" + toString(A[i])]++;

      }

      else{

        counts["a" + toString(A[i])]=1;

      }

    }


    max = 0;

    for (a in counts){

      if (counts[a]>max && counts[a]%2!==0){

        max = counts[a]

      }

    }


    return max;

}


var testArray=[];


for (var i =0; i<100; i++){

    testArray.push(Math.ceil(Math.random()*100))

}


console.log(findOdd(testArray));



RISEBY
浏览 52回答 1
1回答

郎朗坤

问题出在 toString() 中。这不是一个普通的全局函数,但它实际上是window.toString().您实际上并不需要toString()使用它的情况,Javascript 会自动将值转换为字符串,例如:'a'&nbsp;+&nbsp;5;&nbsp;//&nbsp;equals&nbsp;'a5'.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript