JavaScript 中的数组排序
本文最后更新于 304 天前,如有失效请评论区留言。

在 JavaScript 中,对数组进行排序有以下几种方式

使用 Array.prototype.sort() 方法:

sort() 方法会原地修改数组,根据指定的排序规则对数组元素进行排序,默认是将元素转换为字符串进行比较。可以传入一个比较函数来定义排序规则。

array.sort((a, b) => a - b); // 数字从小到大排序

示例

const array = [1,3,7,2,4,8]
array.sort((a, b) => a - b);
console.log(array)

> 1,2,3,4,7,8

使用扩展运算符

...Array.prototype.sort() 方法进行不改变原数组的排序:

const sortedArray = [...array].sort((a, b) => a - b);

示例

const array = [1,3,7,2,4,8]
const sortedArray = [...array].sort((a, b) => a - b);
console.log(sortedArray)

> 1,2,3,4,7,8

使用 localeCompare() 方法

字符串排序方法

array.sort((a, b) => a.localeCompare(b)); // 字符串排序
 ```

示例

```js
const array = ['a', 'c', 'f', 'd', 'h', 'b']
array.sort((a, b) => a.localeCompare(b))
console.log(array)

> a,b,c,d,f,h

对象数组排序时

可以使用比较函数来指定排序规则:

array.sort((a, b) => a.property - b.property); // 根据对象属性值排序

将数组中的对象按照 sort 从小到大进行排序,这个是比较常见的需求
示例

const array = [
  {
    id:1,
    cattegory:'衬衣',
    sort:3
  },
  {
    id:2,
    cattegory:'鞋子',
    sort:1
  },
  {
    id:3,
    cattegory:'外套',
    sort:2
  },
]
const sortArray  = [...array].sort((a, b) => a.sort - b.sort)
for (let arr of sortArray) {
  for (let key in arr) {
    console.log(key, arr[key])
  }
  console.log('---------------')
}

>
id 2
cattegory 鞋子
sort 1
---------------
id 3
cattegory 外套
sort 2
---------------
id 1
cattegory 衬衣
sort 3
---------------
版权声明:除特殊说明,博客文章均为Gavin原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇