javascript - 查找出现奇数次的元素

标签 javascript arrays for-loop integer

我正在尝试解决此练习,即查找在数组中出现奇数次的数字。到目前为止我有这个,但输出最终是一个出现偶数次的整数。例如,数字 2 出现了 3 次,数字 4 出现了 6 次,但输出为 4,因为它计为出现 5 次。它怎么会返回它发现的第一个奇数集呢?感谢您的帮助!

         function oddInt(array) {
         var count = 0;
         var element = 0;
         for(var i = 0; i < array.length; i++) {
           var tempInt = array[i];
           var tempCount = 0;
             for(var j = 0; j <array.length; j++) {
                if(array[j]===tempInt) {
                tempCount++;
                  if(tempCount % 2 !== 0 && tempCount > count) {
                  count = tempCount; 
                  element = array[j];
                }
               }
              }
             }
           return element;
           }
           oddInt([1,2,2,2,4,4,4,4,4,4,5,5]);

最佳答案

function findOdd(numbers) {
  var count = 0;
  for(var i = 0; i<numbers.length; i++){
    for(var j = 0; j<numbers.length; j++){
      if(numbers[i] == numbers[j]){
        count++;
      }
    }
    if(count % 2 != 0 ){
      return numbers[i];
    }
  }
};

console.log(findOdd([20,1,-1,2,-2,3,3,5,5,1,2,4,20,4,-1,-2,5])); //5
console.log(findOdd([1,1,1,1,1,1,10,1,1,1,1])); //10

关于javascript - 查找出现奇数次的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43460509/

相关文章:

java - 以金字塔样式翻转打印数字

java - 如何创建这个循环,使输出与输入相同,除非我按 "end"然后程序结束?

java - for 循环在第一次迭代中停止

javascript - Koa2 request.body 为空

javascript - 选中复选框时形成对象数组 angularjs

javascript - 如何在 Javascript 中正确地对数组进行 URL 编码?

javascript - 函数没有打印出数组中的 1 到 10

javascript - 从 Phonegap 罗盘获取 x、y、z 值

javascript - 使用带 href 标签的 Bootstrap 模式

javascript - 播放一声哔哔声 (beep.js)