codewars(二)

今天是体验codewars的第二天,今天开始研究了一下大佬们的代码,emm,for循环是恶魔吧,我要换换换~!!

今天的题目:

//您将获得一个包含整数的数组(其长度至少为3,但可能非常大)。除了单个整数之外,该数组要么完全由奇数整数组成,要么完全由偶数整数组成N。编写一个方法,将数组作为参数并返回此“异常值”
N。 // You are given an array (which will have a length of at least
3, but could be very large) containing integers. The array is either
entirely comprised of odd integers or entirely comprised of even
integers except for a single integer N. Write a method that takes the
array as an argument and returns this “outlier” N.

emm,
(1)数组作为一个参数,并且长度大于3 先判断是否大于3
(2) 判断奇数/偶数输出不属于一类的数字,并且存入到数组中 作为返回值输出
(3) 判断奇数和偶数 然后比较长度 进行输出
这是我的想法,最开始的想法,后来,发现看错题目了,,只要输出一个数字就好,注意,是数字。。这就是第一次提交没过的原因啊~
第一次代码:

 function findOutlier(integers){
        var arrBlock1 =[];
        var arrBlock2 =[];
        if(integers.length>2){
            for(var i=0;i<integers.length;i++){
                if(integers[i] % 2 ===0){
                    arrBlock1.push(integers[i]);
                }else {
                    arrBlock2.push(integers[i]);
                }
            }
            integers=parseInt(arrBlock1.length<arrBlock2.length?arrBlock1:arrBlock2);
        }
        return integers;
    }

代码已经发现了我的菜。。

第二次代码(ps:看过大佬代码的思路):
用filter才是王道。。。

 function findOutlier1(integers) {
        return integers.slice(0, 3).filter(even).length >= 2 ? integers.find(odd) : integers.find(even)
    }
    const even = (num) => {
        return (num % 2 === 0)
    }
    const odd = (num) => {
        return (num % 2 !== 0)
    }

得票最高的代码:

function findOutlier(int){
  var even = int.filter(a=>a%2==0);
  var odd = int.filter(a=>a%2!==0);
  return even.length==1? even[0] : odd[0];
}

嘻嘻 其实差不多啦,继续加油啦~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值