gpt4 book ai didi

javascript - 是否可以使用原始 sort() 方法在我的算法中对数组进行排序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:30:38 25 4
gpt4 key购买 nike

我想知道我是否可以像这样对这个数组进行排序:

[ 0 ,3, 1, 4, 0 ] =>   [ 1, 3, 4, 0, 0] 

细则:

  • 数组包含 0 和正数。
  • 所有的0都在最后。
  • 所有正数按升序排列。

一开始,我用的是js的原始排序功能,比如:

[0, 3, 1, 4, 0].sort(function(previous_value, former_value){
if(previous_value == 0 && former_value != 0 ) {
return 1;
}else if (former_value == 0 && former_value != 0) {
return -1;
}else if (former_value == 0 && former_value == 0) {
return 0;
}else{
return previous_value - former_value;
}
})

然而,我失败了。我想知道是否可以使用 sort 函数实现“我的排序算法”?例如:

[0, 3, 1, 4, 0].sort(function(previous_value, former_value){
//code goes here
})

它会得到正确的答案:

[1, 3, 4, 0, 0]

最佳答案

0 赋予更高的优先级

console.log(
[0, 3, 1, 4, 0].sort(function(a, b) {
return a === b ? 0 : (a === 0 ? 1 : (b === 0 ? -1 : a - b));
})
);

如果条件展开

console.log(
[0, 3, 1, 4, 0].sort(function(a, b) {
if (a === b)
return 0;
if (a === 0)
return 1;
if (b === 0)
return -1;
return a - b;
})
);

关于javascript - 是否可以使用原始 sort() 方法在我的算法中对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006707/

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