给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为从小到大排序,为负是从大到小排序。
