使用 JavaScript 将对象中的所有键小写

小写对象中的所有键

Lowercase all Keys in an Object using JavaScript

要将对象中的所有键都小写,请使用该Object.keys()方法获取对象键的数组。调用该reduce()方法,将一个空对象作为初始值传递给它,并在每次迭代时将键小写,将键值对分配给该对象并返回结果。

索引.js
function toLowerKeys(obj) { return Object.keys(obj).reduce((accumulator, key) => { accumulator[key.toLowerCase()] = obj[key]; return accumulator; }, {}); } const obj = { NAME: 'Tom', AGE: 30, }; console.log(toLowerKeys(obj)); // 👉️ {name: 'Tom', age: 30}

我们创建了一个可重用的函数,将对象的键转换为小写。

第一步是使用
Object.keys
方法获取对象键的数组。

索引.js
const obj = { NAME: 'Tom', AGE: 30, }; console.log(Object.keys(obj)); // 👉️ ['NAME', 'AGE']

接下来,我们使用
Array.reduce
方法迭代键数组。

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

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

reduce 方法将返回一个对象,其中所有键都转换为小写。

另一种方法是使用
Object.entries

Object.fromEntries
方法。

小写对象中的所有键:

  1. 使用该Object.entries()方法获取键值对数组。
  2. 使用该map()方法将数组中的所有键都小写。
  3. 在结果上调用Object.fromEntries()方法。
索引.js
function toLowerKeys(obj) { // 👇️ [ ['NAME', 'Tom'], ['AGE', 30] ] const entries = Object.entries(obj); return Object.fromEntries( entries.map(([key, value]) => { return [key.toLowerCase(), value]; }), ); } const obj = { NAME: 'Tom', AGE: 30, }; console.log(toLowerKeys(obj)); // 👉️ {name: 'Tom', age: 30}

第一步是使用该Object.entries
方法获取键值对数组。

索引.js
const obj = { NAME: 'Tom', AGE: 30, }; // 👇️️️ [ ['NAME', 'Tom'], ['AGE', 30] ] console.log(Object.entries(obj));

然后我们使用
Array.map
方法迭代键值对数组。

我们使用
解构赋值
,把每个数组的键和值都拉出来,赋值给一个变量。

索引.js
const [key, value] = ['NAME', 'Tom']; console.log(key); // 👉️ "NAME" console.log(value); // 👉️ "Tom"

在每次迭代中,我们返回一个新数组,其中的键被转换为小写。

这给了我们一个键值对数组,其中所有键都是小写的。

索引.js
// 👇️ [ ['name', 'Tom'], ['age', 30] ] console.log( [ ['NAME', 'Tom'], ['AGE', 30], ].map(([key, value]) => { return [key.toLowerCase(), value]; }), );

最后一步是将键值对数组传递给
Object.fromEntries方法以将其转换回对象。

索引.js
// 👇️ {name: 'Tom', age: 30} console.log( Object.fromEntries([ ['name', 'Tom'], ['age', 30], ]), );

这是一个 3 步过程:

  1. 获取键值对数组
  2. 将每个键转换为小写
  3. 使用键值对数组创建对象
选择哪种方法取决于个人喜好。我更喜欢方法方法,因为它更简洁直接。 reduce