Olá, pessoal. Estava quebrando a cabeça aqui pra tentar resolver a questão 4, mas na resposta só me deixou mais confuso ainda. Vamos lá!
O converter para Objeto o JSON achei estranho, pois ele já é invoca como Objeto. Tive que converter primeiro em String pra depois converter em Objeto, pois dava erro de [object Object].
Outra coisa, sobre o Modificar.
const animalParaModificar = animaisObjeto.animais.find(animal => animal.id === 2);
if (animalParaModificar) {
animalParaModificar.habitat = "Oceano Antártico";
}
Esse é o melhor jeito mesmo de editar um dado? Não existe uma forma simplificada?
Sobre remover dados, eu pensei em usar o delete, sendo:
delete animaisObjeto.animais[2];
Porém ele retorna <1 empty item> ou null quando é lido em Stringify pelo console.log.
A resposta da questão sugeriu assim:
const indiceAnimalRemover = animaisObjeto.animais.findIndex(animal => animal.id === 1);
if (indiceAnimalRemover !== -1) {
animaisObjeto.animais.splice(indiceAnimalRemover, 1);
}
Na mesma questão do modificar, não teria um jeito mais simples? Não entendi o uso do !== -1 e do splice ali. Poderiam me explicar?
E por fim, pede no final para reconverter para String de novo, porém vejo que usa um tal de null, 2.
const animaisNovaString = JSON.stringify(animaisObjeto, null, 2);
O que faz isso? Não entendi.
Aguardo resposta.