这个是之前的一个面试题~
原数组如下:
var arr=[12,9,2,31,11,23,17,24];
使用数组的sort方法,将数组按要求排列:
方式一:
var arr=[12,9,2,31,11,23,17,24];
arr=arr.sort(function(a,b){
return a-b
})
var arr2=[];
for(var i=0;i<arr.length;i++){
if(arr[i]%2==0){
arr2.push(arr[i]);
}else{
arr2.unshift(arr[i])
}
}
console.log(arr2);
方式二:
var arr=[12,9,2,31,11,23,17,24];
var arr1=arr.sort(function(a,b){
// 如果是a是偶数,b是奇数
if(a%2==0&&b%2!=0){
return 1;//a,b之间交换
}
// 如果是a是奇数,b是偶数
if(a%2!=0&&b%2==0){
return -1;//a,b之间不交换
}
// 如果是a,b都是偶数或者奇数
if(a%2==0&&b%2==0){
return a-b;
}else{
return b-a;
}
})
console.log(arr1);
输出结果:
[ 31, 23, 17, 11, 9, 2, 12, 24 ]