console.log(objArrSort([{attr1: 1, attr2: 2}, {}, {attr1: 1}]))
function objArrSort(waitArr) {
var objLengthArr = [];
for (var i = 0, len = waitArr.length; i < len; i++) {
objLengthArr.push(getObjAttrNum(waitArr[i])); //将对象数组每个对象的num放到新数组
}
//objLengthArr[2,0,1]
return orderArr(waitArr, objLengthArr);
function orderArr(arr, lenArr) {
var sortArr = lenArr.slice(0).sort(),
finishArr = [];
//sortArr[0,1,2]
for (var i = 0, len = sortArr.length; i < len; i++) {
for (var leng = lenArr.length - 1; leng > -1; leng--) {
if (lenArr[leng] > -1 && lenArr[leng] === sortArr[i]) { //根据num进行匹配
finishArr.push(arr[leng]);
lenArr[leng] = -1;
break;
}
}
}
return finishArr;
}
function getObjAttrNum(obj) { //数组对象中的每个对象的长度
var num = 0;
for (var key in obj) {
!obj.hasOwnProperty(key) || num++;
}
return num;
}
}
给object数组进行排序(排序条件是每个元素对象的属性个数)
猜你喜欢
转载自blog.csdn.net/weixin_43271750/article/details/84663740
今日推荐
周排行