gpt4 book ai didi

javascript - 如何将数组中的元素按顺序和偶数排序,并且它们应该按升序排列

转载 作者:行者123 更新时间:2023-11-28 14:32:20 24 4
gpt4 key购买 nike

我目前正在学习如何使用 javascript 进行编程,我遇到了一个问题(编写函数对数组进行排序,奇数在前,偶数在后//sortArray([3,24,1,4,9,10]) => [1,3,9,4,10,24]//sortArray([2,1,4,9,3,3,10,12]) => [1,3,3,9,2,4,10,12]),我已经实现了一个解决方案排序函数和多个变量。请参阅下面的代码;

  function sortingArr (array) {
let sortedArr = (array.sort(function(a, b) { return a - b; })), oddArr = [], evenArr = [];
for (i = 0; i < array.length; i++){
if (sortedArr[i] % 2 == 0){
evenArr.push(sortedArr[i]);
}
else {
oddArr.push(sortedArr[i]);
}
}
return oddArr.concat(evenArr);
}
console.log (sortingArr ([2,1,4,9,3,3,10,12]));

我很感激能用最少的内存分配和运行时间来解决相同问题的建议。

最佳答案

对模数 2 小于“b”的“a”进行排序
或者“a”大于“b”。

function sortArrayUnevenFirst (array) {
return array.sort(function(a,b){return b%2-a%2 || a-b});
}
console.log (sortArrayUnevenFirst([12,10,2,1,4,9,3,3]));
console.log (sortArrayUnevenFirst(['12','10','2','1','4','9','3','3']));

模数 2 对于偶数只能为 0,对于不平坦则只能为 1。

因此,当 a%2==0(偶数)且 b%2==1(非偶数)时,“a”会放在“b”之后。
当a%2等于b%2时,大小决定哪个先出现。

关于javascript - 如何将数组中的元素按顺序和偶数排序,并且它们应该按升序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965730/

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