简介
在本实验中,我们将探索如何在 JavaScript 中使用 deepMapKeys 函数来递归地映射对象的键。我们将学习如何使用为每个键提供的函数创建一个具有相同值和映射键的新对象。通过实际操作练习和示例,我们将了解此函数的工作原理以及如何在实际场景中使用它。
在本实验中,我们将探索如何在 JavaScript 中使用 deepMapKeys 函数来递归地映射对象的键。我们将学习如何使用为每个键提供的函数创建一个具有相同值和映射键的新对象。通过实际操作练习和示例,我们将了解此函数的工作原理以及如何在实际场景中使用它。
要深度映射对象的键,请执行以下步骤:
node 开始练习编码。deepMapKeys 函数与提供的对象以及一个生成新键的函数一起使用。Object.keys() 遍历对象的键。Array.prototype.reduce() 和提供的函数创建一个具有相同值和映射键的新对象。deepMapKeys 以映射其键。const deepMapKeys = (obj, fn) =>
Array.isArray(obj)
? obj.map((val) => deepMapKeys(val, fn))
: typeof obj === "object"
? Object.keys(obj).reduce((acc, current) => {
const key = fn(current);
const val = obj[current];
acc[key] =
val !== null && typeof val === "object"
? deepMapKeys(val, fn)
: val;
return acc;
}, {})
: obj;
以下是 deepMapKeys 的一个示例用法:
const obj = {
foo: "1",
nested: {
child: {
withArray: [
{
grandChild: ["hello"]
}
]
}
}
};
const upperKeysObj = deepMapKeys(obj, (key) => key.toUpperCase());
/*
{
"FOO":"1",
"NESTED":{
"CHILD":{
"WITHARRAY":[
{
"GRANDCHILD":[ 'hello' ]
}
]
}
}
}
*/
恭喜你!你已经完成了深度映射对象键实验。你可以在 LabEx 中练习更多实验来提升你的技能。