给object数组进行排序(排序条件是每个元素对象的属性个数,程序代码如下所示:
var obj1 = { att1: 0, att2: 0, att3: 0, att4: 0, }; var obj2 = { att1: 0, att2: 0, att3: 0, att4: 0, att5: 0, }; var obj3 = { att1: 0, att2: 0, att3: 0, att4: 0, att5: 0, att6: 0, }; var aObjs = [obj1, obj2, obj3]; aObjs.sort(function() { for (var i = 0; i < 2; i++) { arguments[i].length = 0; for (var att in arguments[i]) { if (argument[i].hasOwnProperty(att)) { arguments[i].length++; } } } return arguments[0].length - arguments[1].length; }); console.log(aObjs);
知识点:
(1)重写sort方法。
(2)通过arguments访问每个对象。
(3)通过for in迭代对象中的数组。
arguments[0].length-arguments[1].length值大于1为从小到大排序,为负是从大到小排序。