codewars题目解答---Find the odd int

好久没写题目了,搞得许多都不记得了,谴责一下自己
在这里插入图片描述
我的解答:这个题目是找到一个数组中出现奇数次的那个数,我想的是找到每一个数字在数组中的下标,统计出现奇数次的下标的那个数

 function findOdd(A) {
        var arr2=[]
        var anser=''
        A.map((val,i)=>{
            arr2.push([findIndex(A,val),val])
        })
        arr2.map((val)=>{
            if(val[0].length%2!=0){
                anser=val[1]
            }
        })
        return anser
      }
      function findIndex(A,n){
        let arr=[]
        A.map((val,index)=>{
            if(val===n){
                arr.push(index)
            }
        })
        return arr
      }
      console.log(findOdd([20,1,-1,2,-2,3,3,5,5,1,2,4,20,4,-1,-2,5]));

看了一下其他的解答,我写的代码真的好多
在这里插入图片描述
我看不懂这个答案,啊哈哈哈
a^b啥意思

这个答案也很不错,至少我能看得懂啊哈哈哈

 function findOdd(A) {
  var obj = {};
  A.forEach(function(el){
    obj[el] ? obj[el]++ : obj[el] = 1;
  });
  for(prop in obj) {
    if(obj[prop] % 2 !== 0) return Number(prop);
  }
}
findOdd([20,1,-1,2,-2,3,3,5,5,1,2,4,20,4,-1,-2,5])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值