簡體   English   中英

對對象中的數字鍵進行排序

[英]Sort numeric keys in object

我有一個帶有鍵的對象,值是整數:

{
  10: 3,
  20: 3,
  30: 3,
  60: 1
}

我想將此對象排序為

{
  60: 1,
  30: 3,
  20: 3,
  10: 3
}

您有解決我問題的解決方案嗎?

對不起,我的英語不好!

4.3.3對象對象是對象類型的成員。 它是屬性的無序集合 ,每個屬性都包含原始值,對象或函數。 存儲在對象屬性中的函數稱為方法。

參見標准ECMA-262

我為您准備了一些解決方案。 首先將其轉換為數組,然后根據所需屬性進行排序。

還顯示了對象{}與數組[]之間的區別。 檢查小提琴,您有一個帶有對象值的排序數組。

 var obj = { 10: 3, 20: 3, 30: 3, 60: 1 }; var keys = Object.keys(obj); var arr = []; for (i = 0; i < keys.length; i++) { arr.push({ val: obj[keys[i]], key: keys[i] }); } var ordered = false; while (!ordered) { var i = 0; ordered = true; for (i = 0; i < arr.length - 1; i++) { if (arr[i].val > arr[i + 1].val) { var pass = arr[i + 1].val; var passkey = arr[i + 1].key; arr[i + 1].val = arr[i].val; arr[i + 1].key = arr[i].key; arr[i].val = pass; arr[i].key = passkey; ordered = false; } } } var newObj = {}; for (i = 0; i < arr.length; i++) { newObj[arr[i].key] = arr[i].val console.log("val:" + arr[i].val + ",key:" + arr[i].key); } document.write("<p>THE ARRAY:" + JSON.stringify(arr) + "</p>"); document.write("<p>THE OBJECT:" + JSON.stringify(newObj) + "</p>"); 

暫無
暫無

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

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