1
resposta

Objeto JavaScript

const cliente = { nome: "Joao", idade: 24, email: "joao@firma.com", telefone: ["1155555550", "1144444440"], };

cliente.enderecos = [ { rua: "R. Joseph Climber", numero: 1337, apartamento: true, complemento: "ap 934", }, ];

const chavesDoObjeto = Object.keys(cliente);

console.log(chavesDoObjeto);

if (!chavesDoObjeto.includes("enderecos")) { console.error("Erro. É necessário ter um endereço cadastrado."); }

Nesse, códigos passamos o objeto cliente, como funcionaria para eu checkar o Object.Keys apenas dos dados de endereço ?

1 resposta

Oi João,

Pelo que entendi, vai depender do que exatamente você quer verificar nesse caso. A propriedade enderecos é um array, então se você quiser uma lista de todas as chaves de todos os objetos dentro de enderecos, terá que percorrer esse array com algum tipo de laço.

Se você quiser apenas verificar se existe pelo menos um objeto de endereço dentro do array, aí a verificação seria no conteúdo do array, por exemplo verificando se enderecos é um array vazio ou não. Há diversas formas de fazer isso, a mais clássica é usando a propriedade array.length, que vai retornar 0 caso não existam elementos no array. Você pode utilizar em conjunto com uma verificação que garanta que enderecos seja do tipo esperado:

if (Array.isArray(enderecos) && !enderecos.length) { ... }

Esse método, porém, não garante contra estruturas do tipo, pois nesse caso o array não está vazio, porém ainda não temos um endereço válido:

cliente.enderecos = [
  {
    rua: "",
    numero: null,
    apartamento: null,
    complemento: null,
  },
];

Nesse caso, a validação deve ser feita antes que os dados sejam inseridos no array, para impedir que seja adicionado um objeto com as propriedades e valores esperados.

Espero ter ajudado!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software