对象数组排序
一、普通数组排序
直接使用自带的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 }}
由于做项目经常用到,记录一下防止脑袋秀逗
以上