一、sort介绍
数组的sort()方法可以把数组排序,
不传参数的默认按字典排序 sort()方法还接受一个回调函数,
按回调函数内代码逻辑排序 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
比较函数应该具有两个参数 a 和 b,分别获取数组中前后相邻的两个数据。
若在排序后的数组中 a 应该出现在 b 之前,则返回一个小于等于 0 的值。也就是顺序不变。
若在排序后的数组中 a 应该出现在 b 之后,则返回一个大于 0 的值。也就是a,b交换位置。
let arr = [1,0,3,4,5] arr = arr.sort((a,b) => a-b)
那么,arr就会按升序排列。
二、sort排序方法的灵活使用
除了默认不穿参数的按字典排序,还有直接相减的从小到大排序。还有几种比较好玩有用的排序。
1、按指定顺序排列。
例子:
let order = ['论坛','微信','微博'] let tableData=[{name:'微博',source:'weibo'},{name:'微信',source:'weixin'},{name:'论坛',source:'luntan'}] tableData = tableData.sort((a, b) => { return order.indexOf(a.name) - order.indexOf(b.name) }) console.log(tableData)
可以看到,这个排列顺序就是指定数组的顺序,可以用来整理数据。
例子中时是最理想的情况,指定数组与排序数组的长度相等,且每一项都存在。如果长度不等或缺失,还可以加一些逻辑判断,比如,不存在的时候indexOf的值一定是-1,必然交换顺序。或者指定数组包含全部情况,而排序数组只是其中一部分。
2、随机排列
随机的逻辑很简单,用Math.random()去生成随机数,决定是否要换位。可以用来打乱顺序。
let tableData=[1,2,3,4,5,6,7,8,9] tableData = tableData.sort((a, b) => { return Math.random() -0.5 }) console.log(tableData)
可以看到两次输出结果是不一样的。
标签:sort,顺序,name,js,数组,排序,tableData From: https://www.cnblogs.com/MingYX/p/16707111.html