[英]Sort numeric keys in object
我有一個帶有鍵的對象,值是整數:
{
10: 3,
20: 3,
30: 3,
60: 1
}
我想將此對象排序為
{
60: 1,
30: 3,
20: 3,
10: 3
}
您有解決我問題的解決方案嗎?
對不起,我的英語不好!
4.3.3對象對象是對象類型的成員。 它是屬性的無序集合 ,每個屬性都包含原始值,對象或函數。 存儲在對象屬性中的函數稱為方法。
我為您准備了一些解決方案。 首先將其轉換為數組,然后根據所需屬性進行排序。
還顯示了對象{}與數組[]之間的區別。 檢查小提琴,您有一個帶有對象值的排序數組。
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.