每天做一件自己害怕的事。——<埃莉诺·罗斯福>
作者:Ashish Lahoti
译者:cl9000
来源:https://codingnconcepts.com/javascript/how-to-sort-array-in-javascript/
在本教程中,我们将学习如何使用Array.sort()方法对JavaScript中的数组进行排序。
1. 字符串数组排序
让我们创建一个字符串数组:
1 | const fruits = ['mango', 'cherry', 'berries', 'apple', 'banana', 'kiwi']; |
我们可以使用以下方法以字母(AZ,AZ)的升序对数组元素进行排序sort():
1 | fruits.sort(); |
Output
▶ (6) [“apple”, “banana”, “berries”, “cherry”, “kiwi”, “mango”]
我们还可以使用以下方法按字母降序(za,ZA)对数组元素进行排序reverse():
1 | fruits.reverse(); |
Output
▶ (6) [“mango”, “kiwi”, “cherry”, “berries”, “banana”, “apple”]
2. 排序编号数组
内置 sort()
和 reverse()
方法按字母顺序对数组元素进行排序,因此在涉及数字数组时,它没有用。幸运的是,sort()
方法将compare
函数作为参数,可以用来覆盖其默认排序行为。
首先创建比较函数:
比较功能
1 | function(a, b) {return a - b} |
当该sort()方法比较两个值时,它将这些值发送到我们的compare函数,并根据返回的值对这些值进行排序。
- 如果结果是否定的,则a排在b之前。
- 如果结果是肯定的,则b在a之前排序。
- 如果结果为0,则没有任何变化。
让我们使用带有 compare
函数的数字数组升序排序 sort()
:
1 | const numbers = [1, 7, 3, 5, 8, 2, 9, 4, 6]; |
Output
▶ (9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
我们需要扭转从减法(A - B)以(B - A)的比较功能,如果我们想在分类编号递减顺序:
1 | const numbers = [1, 7, 3, 5, 8, 2, 9, 4, 6]; |
Output
▶ (9) [9, 8, 7, 6, 5, 4, 3, 2, 1]
参考
- https://codingnconcepts.com/javascript/how-to-sort-array-in-javascript/
- MDN - https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
关注【公众号】,了解更多。
关注【公众号】,了解更多。
关注【公众号】,了解更多。
赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!