小写对象中的所有键
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
方法。
小写对象中的所有键:
- 使用该
Object.entries()
方法获取键值对数组。 - 使用该
map()
方法将数组中的所有键都小写。 - 在结果上调用
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 步过程:
- 获取键值对数组
- 将每个键转换为小写
- 使用键值对数组创建对象
选择哪种方法取决于个人喜好。我更喜欢方法方法,因为它更简洁直接。
reduce