Getting The Data pt-br Explainer

Explicação de Obtenção de dados

Objetivo do desafio: Usar o JavaScript para importar uma array de animais e adicionar o nome de cada animal à sua página da Web.

Passo a passo da solução: Comece o desafio adicionando import { animals } from 'animalShelter.data' à parte superior da guia do JS. animals é uma array que contém arrays.

Em seguida, acrescente um laço for para fazer a iteração por animals, por exemplo for (let animal of animals)

Dentro do laço for, use document.createElement() para criar um novo elemento h2, e armazene-o em uma variável chamada animalName.

Em seguida, defina o .textContent de animalName como animal[0]. Por último, use o método .appendChild() para adicionar animalName ao body.

Conceitos de JavaScript: Objeto do documento, document.createElement, document.body. .appendChild(), Laço for

eu fiz tudo que foi pedido mas continua não funcionando,fica dizendo que o .textContent está no local errado e para verificar se está abaixo da declaração de variavel animalName.mas ele esta abaixo de animal name,não tem nada errado,não esqueci de nenhum ; a unica coisa que eu penso que posso ter errado foi dentro dos parenteses do for…of eu usei o exemplo que vcs colocaram for (let animal of animals) {} mas mesmo assim a mensagem não diz que esse é o problema,quero respostas.

eu resolvi esse problema retirando as ‘’ do .textContent como por exemplo: animalName.textContent=‘animal[0]’;
seria sem as ‘’ ficando
animalName.textContent=animal[0];

Essa é a “resposta”

import {animals} from ‘animalShelter.data’;
let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animals’;
document.body.appendChild(title);

for (let animal of animals){
let animalName = document.createElement(‘h2’);
animalName.textContent = animal[0];
document.body.appendChild(animalName);
}

3 Likes

segue abaixo a resposta, levei muito tempo pra chegar nela, pois esqueci de usar o var em animal dentro do laço for of:

import { animals } from ‘animalShelter.data’;

let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animals’;
document.body.appendChild(title);

for ( var animal of animals) {
let animalName = document.createElement(‘h2’)
animalName.textContent = animal[0]

document.body.appendChild(animalName)

}

1 Like

necesito ayuda con esto por favor

import {animales} de ‘animalShelter.data’.
let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animales’;
document.body.appendChild(title);

for (var animal of animals) {
let animalName = document.createElement (‘h2’);
animalName.textContent = animal [0];

document.body.appendChild(animalesName);
}

olá para os que está com dificuldade para resolver, eu entendo ate porque os comandos está bem confuso, segue abaixo a forma correta !

for(var animal of animals){
let animalsName= document.createElement(“h2”);
animalName.textContent= animal[0];
document.body.appendChild(animalname);
}

Pessoal, fiquem atentos com palavras que se iniciam com letras maiúsculas, assim como palavras no plural e no singular: isso faz toda a diferença neste exercício!
Segue abaixo a minha resposta:

import {animals} from ‘animalShelter.data’

let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animals’;
document.body.appendChild(title);

for(var animal of animals){
let animalName = document.createElement(‘h2’);

animalName.textContent = animal[0];
document.body.appendChild(animalName);
}

Espero ter ajudado! :smiley:

3 Likes

Hola!

You’re typing in “animales” in spanish, but the naming is “animals”, in english.
I do this same mistake all the time, mixing portuguese with english.
Pay attention and you’ll be ok! :smiley:

Desculpe-me mas há um erro na declaração de variável no laço for ,‘var’ ao invés de ‘let’ o correto é for (let animal of animals) e não for (var animal of animals) ou não?

Thanks.

import { animals } from ‘animalShelter.data’;

let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animals’;
document.body.appendChild(title);

for (let animal of animals) {

let animalName = document.createElement('h2');
animalName.textContent = animal[0];
document.body.appendChild(animalName);

}

2 Likes

Estou tentando fazer com o mesmo procedimento correto, mas o editor fala que a posição está errada sendo que está certa, segue o anexo do código!

import { animals } from ‘animalShelter.data’;
let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animals’;
document.body.appendChild(title);

for(let animal of animals){
let animalName = document.createElement(‘h2’);
animalName.textContent = animal[0];
document.body.appendChild(animalName);

}

a resposta caso alguém precise.

import { animals } from ‘animalShelter.data’
let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animals’;
document.body.appendChild(title);
for (let animal of animals){
let animalName = document.createElement(‘h2’);
animalName.textContent = animal[0];
document.body.appendChild(animalName);
}


hellp

1-import { animals } from ‘animalShelter.data’;
2-let title = document.createElement(‘h1’);
3-title.textContent = ‘Adoptable Animals’;
4-document.body.appendChild(title);
5-for (let animal of animals)
6- let animalName = document.createElement(‘h2’);
7- animalName.textContent = animal[0];
8- document.body.appendChild(animalName);
9-}

Essa forma está correta.

import { animals } from ‘animalShelter.data’;
let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animals’;
document.body.appendChild(title);
for (var animal of animals){
var animalName = document.createElement(‘h2’);
animalName.textContent = animal[0]
document.body.appendChild(animalName)
}

Essa é a maneira correta.

Pessoal, estou preso neste exercício com o seguinte problema " Os <h1> e <h2> elementos foram anexados na ordem errada. Verifique se document.body.appendChild(animalName) vem após ``document.body.appendChild(title);"

Segue meu código:

import { animals } from “animalShelter.data”;

let title = document.createElement(“h1”);
title.textContent = “Adoptable Animals”;
document.body.appendChild(title);
for(var animal of animals){
let animalName= document.createElement(“h2”);
animalName.textContent= animal[0];
document.body.appendChild(animalName);
}

Creio que deve haver algum erro de interpretação, pois o erro não condiz com o código, se alguém souber como posso avançar ficarei agradecido.

import {animals} from ‘animalShelter.data’

let title = document.createElement(‘h1’);
title.textContent = ‘Adoptable Animals’;
document.body.appendChild(title);

for (let animal of animals){
let animalName = document.createElement(‘h2’);
animalName.textContent = animal[0];

document.body.appendChild(animalName);
}

Erros de sintax que cometi e podem ser os seus também:

for (animal of animals)
for ( let animal of animals)

Não declarei a variável dentro dos parênteses do for. Influenciado pela sintax Pyton < for c in range() > esquecia que o que seria um elemento em Py é uma variável em JS.

animal.textContent = animal[0]
animalName.textContent = animal[0]

Fiz a iteração com < animal > em vez de < animalName >. Considerei que a iteração seria na variável animal dos parênteses do for…of, mas ela deve ser feita dentro do bloco com a variável animalName.

Bons estudos, até.

1 Like

A escolha entre variáveis de escopo global var e de escopo local let influenciam na demanda da memória.

Por isso nesse exercício ao adicionar o laço for…of a declaração de variável deve ser de escopo local let.

alterando seu código de:

for(var animal of animals){

para:

for(let animal of animals){