依屬性名稱組織JavaScript 物件
依屬性名稱字母順序對JavaScript 物件排序是常見要求,但作為對象,它提出了一個挑戰不保證按鍵順序。本文解決了這個問題,並提供了一個按特定順序組織物件的解決方案。
過時的ES5 解決方案:
因為ES5 規範沒有定義物件的順序鍵,可以使用以下方法,但不被認為是面向未來的:
<code class="javascript">function sortObject(o) { var sorted = {}, key, a = []; for (key in o) { if (o.hasOwnProperty(key)) { a.push(key); } } a.sort(); for (key = 0; key < a.length; key++) { sorted[a[key]] = o[a[key]]; } return sorted; }
此解決方案迭代物件的鍵,按字母順序對它們進行排序,然後使用排序後的鍵建立一個新物件及其對應的值。
ES6 相容解決方案:
隨著 ES6 的引入,現在可以保證物件鍵按照它們定義的順序排列。因此,可以更簡潔地實現排序:
<code class="javascript">const sortedObject = Object.fromEntries( Object.entries(originalObject).sort((a, b) => a[0].localeCompare(b[0])) );</code>
該方法將物件轉換為鍵值對數組,根據鍵對數組進行排序,然後將排序後的數組轉換回物件使用Object.fromEntries( ).
結論:
雖然ES5 中物件鍵的順序未定義,但提供的解決方案可用於按屬性名稱對物件進行排序。在 ES6 及更高版本中,保證了物件鍵的順序,使排序過程更加簡單。
以上是如何依屬性名稱對 JavaScript 物件進行排序:ES5 與 ES6 方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!