sort()方法详解

作用

对数组进行排序,默认情况下,将元素转换为字符串,然后按照它们的UTF-16码值升序排序。

语法

sort()

元素是字符串时 默认排序时根据字典顺序进行排序的

 元素是字母字符串时,按照字母进行升序

const stringArray = ["Blue", "Humpback", "Beluga"];

console.log(stringArray.sort());

[ 'Beluga', 'Blue', 'Humpback' ]

元素是数字字符串时,将数字转换成ASCII值再进行升序

const numericStringArray = ["80", "9", "700"];

console.log(numericStringArray.sort());

[ '700', '80', '9' ]

元素是数字,按照字符串Unicode的顺序进行排序,而非数值大小。

const numberArray = [40, 1, 5, 200];

console.log(numberArray.sort());

[ 1, 200, 40, 5 ]
const mixedNumericArray = ["80", "9", "700", 40, 1, 5, 200];

console.log(mixedNumericArray.sort());

[
  1,   200,   40,
  5,   '700', '80',
  '9'
]

sort(compareFn)

function compareBumbers(a,b) {
  return a - b
}

const stringArray = ["Blue", "Humpback", "Beluga"];

console.log(stringArray.sort(compareBumbers));

[ 'Blue', 'Humpback', 'Beluga' ]

const numberArray = [40, 1, 5, 200];

console.log(numberArray.sort(compareBumbers));

[ 1, 5, 40, 200 ]

const numericStringArray = ["80", "9", "700"];

console.log(numericStringArray.sort(compareBumbers));

[ '9', '80', '700' ]


const mixedNumericArray = ["80", "9", "700", 40, 1, 5, 200];

console.log(mixedNumericArray.sort(compareBumbers));

[
  1,     5,    '9',
  40,    '80', 200,
  '700'
]

也就是常见的

const a = [2,4,1,6,3,9,5]

console.log(a.sort());
console.log(a.sort((x,y)=>x-y));

元素是对象时,可以通过比较它们的某个属性的值来排序

const items = [
  { name: "Edward", value: 21 },
  { name: "Sharpe", value: 37 },
  { name: "And", value: 45 },
  { name: "The", value: -12 },
  { name: "Magnetic", value: 13 },
  { name: "Zeros", value: 37 },
];

// 根据 value 排序
console.log(items.sort((a, b) => a.value - b.value));

[
  { name: 'The', value: -12 },
  { name: 'Magnetic', value: 13 },
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'Zeros', value: 37 },
  { name: 'And', value: 45 }
]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吞掉星星的鲸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值