1
resposta

[Dúvida] Meu cliente.enderecos.push() nao esta funcioando

Mesmo apos copiar o codigo do alura no crt c, o codigo continua dando erro dizendo que TypeError: cliente.enderecos.push is not a function

const cliente = {
    nome: "Alicia",
    idade: 13,
    email: "plantacagadahumana@gmail.com",
    telefone: ["9921-2213", "2981-2837"]
};

cliente.enderecos = {
    cidade: "Guanambi",
    rua: "Sua mae",
    apartamento: true,
    complemento: "ap 380",
}

console.log(cliente)
console.log(cliente.enderecos)


cliente.enderecos.push({
    rua: "R. Joseph Ladder",
    numero: 404,
    apartamento: false,
  });

1 resposta

No seu código, você está tentando usar a função push() em cliente.enderecos, mas a função push() é usada para adicionar elementos a um array, não a um objeto. No seu caso, cliente.enderecos é um objeto, não um array.

Se você deseja adicionar propriedades adicionais ao objeto cliente.enderecos, basta atribuir diretamente as novas propriedades a ele, como você fez anteriormente. Por exemplo:

cliente.enderecos.rua = "R. Joseph Ladder";
cliente.enderecos.numero = 404;
cliente.enderecos.apartamento = false;

console.log(cliente.enderecos);

Isso irá adicionar as propriedades rua, numero e apartamento ao objeto cliente.enderecos.

No entanto, se você deseja criar uma matriz de endereços dentro do objeto cliente.enderecos, você pode definir cliente.enderecos como um array vazio e, em seguida, usar a função push() para adicionar objetos de endereço a ele. Aqui está um exemplo:

cliente.enderecos = [];

cliente.enderecos.push({
  rua: "R. Joseph Ladder",
  numero: 404,
  apartamento: false
});

console.log(cliente.enderecos);

Isso criará uma matriz vazia em cliente.enderecos e, em seguida, adicionará um objeto de endereço a essa matriz usando push(). Você pode continuar chamando push() para adicionar mais objetos de endereço, se necessário.