Olá Daniel, tudo bem com você?
Como percorrer um objeto que esta entre {} ??
Não é comum percorrer objetos, normalmente utilizamos por exemplo:
Object.keys( objeto)
Para pegar as chaves, e:
Object.values(objeto)
Para pegar os valores :)
E também poderíamos fazer um ( assumindo que esse objeto que você me mandou se trata de uma constante chamada data) :
for( const chave in data){
console.log("Chave" + chave);
console.log("Valor: " + data[chave]);
}
Se ele estivesse dentro de [] eu poderia usar o fotEach ? E qual a forma correta de percorrer ele, porque dentro dele tem um outro array de objetos que chama "grades".
Sim, se tivessemos um array de objetos igual esse que você mandou poderiamos, exemplo:
const dados = [
{
"nextId": 2,
"grades": [
{
"id": 1,
"student": "Loiane Groner",
"subject": "01 - JavaScript",
"type": "Fórum",
"value": 15,
"timestamp": "2020-05-19T18:21:24.958Z"
},
{
"id": 2,
"student": "Loiane Groner",
"subject": "02 - Node",
"type": "Fórum",
"value": 5,
"timestamp": "2020-05-19T18:21:24.964Z"
},
]
},
{
"nextId": 3,
"grades": [
{
"id": 2,
"student": "Marco Bruno",
"subject": "02 - Css"
"type": "Fórum",
"value": 15,
"timestamp": "2020-05-19T18:21:24.958Z"
},
{
"id": 3,
"student": "Marco Burno,
"subject": "04 - React",
"type": "Fórum",
"value": 5,
"timestamp": "2020-05-19T18:21:24.964Z"
},
]
}
AI poderíamos fazer:
dados.forEach( dado => console.log(dado))
Onde na primeira iteração seria o primeiro objeto com nome "Loiane" e na segunda o Marco Bruno
E qual a forma correta de percorrer ele, porque dentro dele tem um outro array de objetos que chama "grades".
Então ai depende do que queremos :)
1) Percorrer apenas as grades
Aqui nem precisamos ter um array de objetos, dado que grades
é um array podemos fazer:
const pessoa = {
"nextId": 2,
"grades": [
{
"id": 1,
"student": "Loiane Groner",
"subject": "01 - JavaScript",
"type": "Fórum",
"value": 15,
"timestamp": "2020-05-19T18:21:24.958Z"
},
{
"id": 2,
"student": "Loiane Groner",
"subject": "02 - Node",
"type": "Fórum",
"value": 5,
"timestamp": "2020-05-19T18:21:24.964Z"
},
]
}
pessoa.grades.forEach( grade => console.log(grade))
2) Percorrer tanto o array de objetos, quanto as grades
Agora vamos voltar para aquele exemplo de um array de objetos, ai caso quiséssemos trabalhar tanto com a pessoa quanto com o objeto grades
, poderáimos fazer:
dados.forEach( dado => {
dado.grades.forEach(grade => ....)
}
E dessa maneira iriamos pegar na primeira iteração o objeto com nome "Loaine" e ir nas grades
dela, e na segunda iteração no Marco Bruno e pegar a grades
dele :)
Conseguiu Compreender ?
Abraços e Bons Estudos!