在一个数组中大部分都是奇数(或偶数),只有1个可能是偶数(或奇数),写一个函数special找到这个不一样的值。 special( [2, 4, 0, 100, 4, 11, 2602, 36] ) // 11 唯一的奇数 special( [160, 3, 1719, 19, 11, 13, -21] ) // 160 唯一的偶数
function special(ary){
let one=ary[0]%2;
let two=ary[1]%2;
let three=ary[2]%2;
let flag=0//代表默认是偶数;
if(one==two||one==three){
//走到这个里面的时候,说明找到的跟one相反
// one的值是0||`1`
if(one==0) flag=1
else flag=0
return ary.filter(item=>{
return item%2==flag
})[0]
}else{
//说明one 就是那个特别不同的
return ary[0]
}
}
console.log(special( [160, 3, 1719, 19, 11, 13, -21] ))
简化方法:
function sepcile(ary){
let ary1=ary.filter(item=>item%2==0);
let ary2=ary.filter(item=>item%2==1);
return ary1.length>1?ary2[0]:ary1[0];
}