首頁 > web前端 > js教程 > 如何依屬性值對 JavaScript 物件進行排序?

如何依屬性值對 JavaScript 物件進行排序?

Linda Hamilton
發布: 2024-12-29 09:42:11
原創
805 人瀏覽過

How to Sort JavaScript Objects by Property Values?

依屬性值對物件進行排序

在 JavaScript 中,物件是鍵值對的無序集合。然而,在某些情況下,我們可能需要根據物件的屬性值對物件進行排序。這可以透過將物件轉換為數組,按值對數組進行排序,然後從排序後的數組重建物件來實現。

讓我們考慮提供的範例:

var list = {
  "you": 100, 
  "me": 75, 
  "foo": 116, 
  "bar": 15
};
登入後複製

到根據清單的值對清單的屬性進行排序,我們可以執行以下操作:

let sortable = [];
for (let property in list) {
    sortable.push([property, list[property]]);
}

sortable.sort((a, b) => a[1] - b[1]);

// [["bar", 15], ["me", 75], ["you", 100], ["foo", 116]]
登入後複製

這將建立一個包含子數組的可排序數組屬性-值對,然後根據值按升序排序。現在,我們可以按排序順序重建物件:

let objSorted = {};
sortable.forEach(item => {
    objSorted[item[0]] = item[1];
});
登入後複製

這給了我們排序後的物件:

objSorted = {
  "bar": 15, 
  "me": 75, 
  "you": 100, 
  "foo": 116
};
登入後複製

在 ES8 及更高版本中,我們可以使用 Object. items():

const maxSpeed = {
  car: 300, 
  bike: 60, 
  motorbike: 200, 
  airplane: 1000,
  helicopter: 400, 
  rocket: 8 * 60 * 60
};

const sortable = Object.entries(maxSpeed)
  .sort(([,a],[,b]) => a-b)
  .reduce((r, [k, v]) => ({ ...r, [k]: v }), {});

console.log(sortable);
登入後複製

這將屬性值對的排序數組傳回為object.

需要注意的是,雖然可以按屬性值對物件進行排序,但它依賴於JavaScript 中的實作怪癖,並且將來可能會中斷。建議避免對 JavaScript 物件中元素的順序做出假設。

以上是如何依屬性值對 JavaScript 物件進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板