在 JavaScript 中对对象的键进行排序

在 JavaScript 中对对象的键进行排序

Sort the Keys of an Object in JavaScript

要对对象的键进行排序:

  1. 使用该Object.keys()方法获取对象键的数组。
  2. 调用sort()数组上的方法。
  3. 调用该reduce()方法以获取具有已排序键的对象。
索引.js
const obj = {z: 'three', a: 'one', b: 'two'}; const sorted = Object.keys(obj) .sort() .reduce((accumulator, key) => { accumulator[key] = obj[key]; return accumulator; }, {}); console.log(sorted); // 👉️ {a: 'one', b: 'two', z: 'three'}

我们使用
Object.keys
方法获取对象键的数组。

索引.js
const obj = {z: 'three', a: 'one', b: 'two'}; // 👇️ ['z', 'a', 'b'] console.log(Object.keys(obj));

下一步是使用
Array.sort()
方法对键数组进行排序。

索引.js
const obj = {z: 'three', a: 'one', b: 'two'}; // 👇️ ['a', 'b', 'z'] console.log(Object.keys(obj).sort());

此时,我们有一个包含对象键的排序数组。

我们要做的最后一件事是使用
Array.reduce
方法迭代排序的键数组并将每个键值对分配给一个对象。

索引.js
const obj = {z: 'three', a: 'one', b: 'two'}; // 👇️ ['a', 'b', 'z'] console.log(Object.keys(obj).sort()); const sorted = Object.keys(obj) .sort() .reduce((accumulator, key) => { accumulator[key] = obj[key]; return accumulator; }, {}); console.log(sorted); // 👉️ {a: 'one', b: 'two', z: 'three'}

我们传递给reduce()方法的函数被数组中的每个元素(键)调用。

我们提供了一个空对象作为accumulator
变量的初始值。

在每次迭代中,我们将键值对分配给accumulator对象并返回结果。

accumulator我们从第一次迭代返回的结果作为第二次迭代的传递accumulator等等。

在最后一次迭代之后,该对象包含按排序顺序排列的所有键值对。

确保将一个空对象作为第二个参数传递给该reduce
方法。
这是
accumulator变量的初始值。

请注意,此方法不会更改原始对象中键的顺序。它使用排序键创建一个新对象。

Object.keys()现在您可以使用和
方法
迭代排序的对象
forEach()

索引.js
const obj = {z: 'three', a: 'one', b: 'two'}; // 👇️ ['a', 'b', 'z'] console.log(Object.keys(obj).sort()); const sorted = Object.keys(obj) .sort() .reduce((accumulator, key) => { accumulator[key] = obj[key]; return accumulator; }, {}); Object.keys(sorted).forEach(key => { console.log(key, sorted[key]); // 👉️ a one, b two, z three });

我们传递给forEach()方法的函数被数组中的每个元素(键)调用。

发表评论