簡體   English   中英

如何根據鍵對 object 進行排序

[英]How to sort an object based on the key

假設我有一個 object obj1= {key1:[1,2,3],key2:[333,11],key3:[9938,33,0,39,2]}如何按值數組的長度對其進行排序。 我嘗試使用 Lodash 方法,但沒有奏效。 需要 output

obj1= {key3:[9938,33,0,39,2],key1:[1,2,3],key2:[333,11]}

首先聲明:JavaScript 對象通常被認為是無序的鍵/值對。 雖然最新版本的 ECMAScript 規范確實規定了 object 屬性的順序,但規則很復雜,除非您知道自己在做什么,否則不要依賴 object 順序仍然是一個很好的建議。

話雖如此,您可以使用Object.entries()Object.fromEntries()來獲得您想要的結果:

 const o = { key1: [1,2,3], key2: [333,11], key3: [9938,33,0,39,2] }; const r = Object.fromEntries( Object.entries(o).sort(([k1, v1], [k2, v2]) => v2.length - v1.length) ); console.log(r);

測試一下

 let obj2={} let obj1= {key3:[9938,33,0,39,2],key1:[1,2,3],key2:[333,11]} Object.keys(obj1).sort((a,b)=>{ if (obj1[a].length>obj1[b].length) { return -1 } if (obj1[a].length<obj1[b].length) { return 1 } return 0 }).map(x=>{ obj2[x]=obj1[x] }) console.log(obj2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM