gpt4 book ai didi

javascript - 对数字进行排序,使偶数在前

转载 作者:行者123 更新时间:2023-12-02 18:51:10 24 4
gpt4 key购买 nike

我有一个包含 20 个随机数(从 -10 到 10)的数组,我需要对它们进行排序。偶数必须位于数组前面。就像 let 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);

我尝试了这个功能,但不起作用。

最佳答案

您可以使用.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;
});

.sort() 方法的比较器函数从数组中传递两个值。该函数应返回:

  • 如果第一个应该排序在第二个之前,则为负数;
  • 如果第一个应该排序在第二个之后,则为正数;
  • 如果订购目的相同,则为零。

关于javascript - 对数字进行排序,使偶数在前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53905685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com