RT
可以利用数组的sort()函数对数组进行排序,如果数组的内容是纯数组或者纯文本,那么sort可以不接受任何参数,按照默认升序进行排序,例如
# 对年龄进行排序 const ages = [11, 15, 14, 8]; ages.sort(); # 对姓名排序 var names = ["Terry", "Mike", "Tom"] names.sort();
如果要对数组进行降序排序(或者直接全部颠倒一下),可以使用reverse()
const ages = [11, 15, 14, 8]; ages.sort(); ages.reverse();
sort还可以接收一个lamda(function)来对指定排序的方法,这样就可以对数组中是一个object的内容自定义排序
function接收一个比值的函数:
function(a, b){return a-b}
当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。
var students = [{age: 16, name: 'Terry'}, {age: 9, name: 'Tom'} , {age: 13, name: 'Annie'}]; console.log(students); // 按照学生的年龄排序 students.sort((student1, student2) => student1.age-student2.age); console.log(students);
还可以利用这个比值函数把数组打乱(利用random):
Math.random()是一个0-1之间的数,所以用0.5和Math.random() 就有相同的几率是大于还是小于。
var ages = [11, 15, 14, 8]; ages.sort(function(a, b){return 0.5 - Math.random()});
文章评论