我有20个随机数的数组(从-10到10),我需要对它们进行排序.偶数必须在数组前面.比如让arr = [-2,3,6,-12,9,2,-4,-11,-8]必须变成arr = [ - 12,-8,-2,2,4,6,-11 ,3,9]这是我的代码:
let array = Array(20).fill().map(() => Math.round(Math.random() * 20) - 10);
console.log(array);
function moveEvenToFront(array){
let temp=0;
let a=0;
for(let i=0;i<array.length;i++){
if(array[i] % 2 == 0){
for (let j=i; j>a; j-- ){
temp = array[j-1];
array[j-1] = array[j];
array[j] = temp;
}
a++;
}
}
return array;
}
moveEvenToFront(array);
Run Code Online (Sandbox Code Playgroud)
我试过这个功能,但它不起作用.
您可以使用该.sort()方法和比较器.比较器函数必须首先检查两个参数的"均匀度".如果它们都是偶数或两者都是奇数,那么它将根据值得出比较结果:
array.sort(function(a, b) {
let aeven = !(a % 2), beven = !(b % 2);
if (aeven && !beven) return -1;
if (beven && !aeven) return 1;
return a - b;
});
Run Code Online (Sandbox Code Playgroud)
该.sort()方法的比较器函数从数组传递两个值.该函数应返回:
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |