【问题标题】:Sort(), confusing about condition in comparision functionShort(),对比较函数中的条件感到困惑
【发布时间】:2017-12-08 18:45:00
【问题描述】:

我从 Codewar 上的基本 javascript 课程中获得此代码,但我不明白它是如何工作的,我逐个尝试了条件,但它没有按预期显示输出。非常感谢。

var arr=[1,2,3,4,5,6,100,999]
arr.sort((a,b)=>{
  if (a%2==b%2) return a-b;
  if (a%2>b%2) return -1;
  return 1;
})
console.log(arr)

//output: [ 1, 3, 5, 999, 2, 4, 6, 100 ]

【问题讨论】:

  • 嗯,你期待什么输出?
  • 因为看不懂所以看的有点奇怪。现在我明白了。

标签: javascript arrays sorting numbers conditional-statements


【解决方案1】:

它应该先打印奇数然后打印偶数,每个都排序

if (a%2==b%2) return a-b; 如果 a, b 都是偶数或都是奇数,则按升序对它们进行排序

if (a%2>b%2) return -1; 否则如果它们不同[一个奇数另一个是偶数]把奇数放在第一位

否则a,b相等

【讨论】:

  • 感谢您的解释。我帮助我理解了它是如何工作的。
猜你喜欢
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2022-11-26
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多