Introdução
Neste laboratório, exploraremos como usar a função deepMapKeys em JavaScript para mapear recursivamente as chaves de um objeto. Aprenderemos como criar um novo objeto com os mesmos valores e chaves mapeadas usando uma função fornecida para cada chave. Através de exercícios práticos e exemplos, entenderemos como essa função funciona e como ela pode ser usada em cenários práticos.
Mapeamento Profundo de Chaves de Objeto
Para mapear profundamente as chaves de um objeto, siga estes passos:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Use a função
deepMapKeyscom o objeto fornecido e uma função que gera novas chaves. - A função cria um objeto com os mesmos valores do objeto fornecido e chaves geradas executando a função fornecida para cada chave.
- Itere sobre as chaves do objeto usando
Object.keys(). - Crie um novo objeto com os mesmos valores e chaves mapeadas usando
Array.prototype.reduce()e a função fornecida. - Se um valor for um objeto, chame recursivamente
deepMapKeysnele para mapear suas chaves também.
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;
Aqui está um exemplo de uso de deepMapKeys:
const obj = {
foo: "1",
nested: {
child: {
withArray: [
{
grandChild: ["hello"]
}
]
}
}
};
const upperKeysObj = deepMapKeys(obj, (key) => key.toUpperCase());
/*
{
"FOO":"1",
"NESTED":{
"CHILD":{
"WITHARRAY":[
{
"GRANDCHILD":[ 'hello' ]
}
]
}
}
}
*/
Resumo
Parabéns! Você concluiu o laboratório Deep Map Object Keys. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.