按属性名称组织 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中文网其他相关文章!