对象数组排序

一、普通数组排序

直接使用自带的sort()排序

例子:
  let arr = [3,2,66,4,77,23]  arr.sort()  console.log(arr)

二、对象数组排序

同样也还是可以使用js自带的sort(),但是需要传参

先解释一下sort()函数:

语法:arrayObject.dort(sortFunc)
sortFunc: 可选,规定排序顺序。必须是函数。
  • 如果调用sort()时没有传参,将按照字母顺序对数组中的元素进行排序,准确点就是按照字符编码进行排序。(如想尝试,可以通过将数组所有元素都转换为字符串,进行比较)
  • 如果想按照其他标准进行排序,就需要提供比较函数,该函数比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数的两个参数x、y,函数返回值如下:
·若x<y,在排序后的数组中x应该出现在y之前,则返回一个小于0的值

·若x=y,则返回0

·若x>y,则返回一个大于0的值

如:

    function sortId(x, y) {        return x.id-y.id    }

例子:

let arr = [    {id:233,name:'探路者'},    {id:6,name:'班加罗尔'},    {id:66,name:'直布罗陀'},    {id:23,name:'命脉'},    {id:1,name:'恶灵'},    {id:888,name:'猎犬'},    {id:33,name:'幻像'},    {id:234,name:'侵蚀'},    {id:43,name:'亡灵'},    {id:999,name:'罗芭'},    {id:777,name:'动力小子'}]function sortId(x, y) {    return x.id-y.id}arr.sort(sortId)

追加

追加输入随意属性名排序:
function sortProp(prop) {    return function(x, y) {        let value1 = x[prop]        let value2 = y[prop]        return value1-value2    }}

由于做项目经常用到,记录一下防止脑袋秀逗

以上