3 回答

TA貢獻1880條經(jīng)驗 獲得超4個贊
您正在尋找的很可能是:
Object.entries(obj).sort(([, a], [, b]) => b.length - a.length);
但是,上面代碼的輸出是一個由對象的可枚舉屬性 [key, value] 對組成的數(shù)組。無法實現(xiàn)在對象本身內(nèi)部對對象的鍵進行排序。

TA貢獻1789條經(jīng)驗 獲得超8個贊
假設(shè)所有鍵都是整數(shù)
Object.keys(obj).sort((a,b)=>a-b).reduce((acc, key)=>((acc[key]=obj[key]), acc),{});
返回具有排序鍵的新對象
編輯: 根據(jù)值長度(數(shù)組長度)排序;
Object.keys(obj).sort((a,b)=>obj[b].length - obj[a].length)
.reduce((acc, key)=>((acc[key]=obj[key]), acc),{});
const obj = {
'1.2.3': [1,2,3,4],
'ABC12': [],
'CAA11': [3,5],
'4.4.1': [1,2,3],
}
const res = Object.keys(obj)
.sort((a,b)=>obj[b].length - obj[a].length)
.reduce((acc, key)=>((acc[key]=obj[key]), acc),{});
console.log(res);

TA貢獻2051條經(jīng)驗 獲得超10個贊
let obj = {
'1.2.3': [1,2,3,4],
'ABC12': [],
'CAA11': [3,5],
'4.4.1': [1,2,3],
}
console.log(obj);
let entries = Object.entries(obj).sort((a,b) => { return b[1].length - a[1].length;});
let tempObj = {};
for(let i = 0; i < entries.length; i++){
tempObj[entries[i][0]] = entries[i][1];
}
obj = tempObj;
console.log(obj);
添加回答
舉報