gpt4 book ai didi

javascript - 使用 .sort 对数字数组进行排序,但我不知道为什么这有效

转载 作者:行者123 更新时间:2023-11-28 16:53:07 25 4
gpt4 key购买 nike

菜鸟问题。因此,我按升序对数字数组进行排序,但我不明白为什么这样做。

const sortYears = arr => {
arr = (a, b) => {return a - b;}
}

const years = [1970, 1999, 1951, 1982, 1963, 2011, 2018, 1922];

console.log(years.sort(sortYears()));

a - b 是什么意思?实际实现了吗?不就是返回另一个数字吗?它怎么突然能够对这些数字进行排序?

最佳答案

a - b产生的数字效果或b - a与 0 相关:

  1. b === a - 项目之间的顺序不会改变
  2. b - a < 0 - 移动a索引低于b
  3. b - a > 0 - 移动b索引低于a

但是,sortYears函数返回undefined ,所以不考虑它。虽然默认排序是升序。它是通过将项目转换为字符串并将它们作为字符串排序来创建的。提供比较函数将确保它们按数字排序(注意使用默认比较时数字 2 的位置):

const sortYears = () => (a, b) => a - b;

const years = [1970, 1999, 1951, 1982, 1963, 2011, 2, 2018, 1922];

console.log(years.sort(sortYears())); // with compare function
// [2,1922,1951,1963,1970,1982,1999,2011,2018]

console.log([...years].sort()); // using the default compare
// [1922,1951,1963,1970,1982,1999,2,2011,2018]

关于javascript - 使用 .sort 对数字数组进行排序,但我不知道为什么这有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688894/

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