Introdução
Neste laboratório, exploraremos como recuperar propriedades de objetos aninhados usando uma string de caminho fornecida em JavaScript. Aprenderemos a usar vários métodos de array, como map(), filter() e reduce(), para extrair valores específicos de objetos complexos. Essa habilidade é essencial para trabalhar com grandes conjuntos de dados e APIs que retornam objetos JSON aninhados.
Como Recuperar Propriedades de Objetos Aninhados a partir de Strings de Caminho
Para praticar a codificação, abra o Terminal/SSH e digite node.
A função a seguir recupera um conjunto de propriedades de um objeto usando seletores especificados em uma string de caminho. Para conseguir isso, siga estes passos:
- Use
Array.prototype.map()para iterar por cada seletor e apliqueString.prototype.replace()para substituir colchetes por pontos. - Use
String.prototype.split()para dividir cada seletor em um array de strings. - Use
Array.prototype.filter()para remover quaisquer valores vazios. - Use
Array.prototype.reduce()para recuperar o valor indicado por cada seletor.
Aqui está a função:
const get = (from, ...selectors) =>
[...selectors].map((s) =>
s
.replace(/\[([^\[\]]*)\]/g, ".$1.")
.split(".")
.filter((t) => t !== "")
.reduce((prev, cur) => prev && prev[cur], from)
);
Você pode usar esta função para recuperar valores de um objeto aninhado usando uma string de caminho. Aqui está um exemplo:
const obj = {
selector: { to: { val: "val to select" } },
target: [1, 2, { a: "test" }]
};
get(obj, "selector.to.val", "target[0]", "target[2].a");
// ['val to select', 1, 'test']
Resumo
Parabéns! Você concluiu o laboratório "Obter Propriedade de Objeto Aninhado a partir de String de Caminho". Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.