Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tratamento de dados da API com Javascript

Oi, eu sempre tenho dúvidas de como tratar dados, pegar um array e transformar em objeto e vice-versa. Essa é uma necessidade que eu senti ao estudar react principalmente, que recebe dados da API e precisa filtrar, adicionar ou deletar dados.

Onde eu posso estudar mais respeito, exemplos:

function makeObj (items) {
  const newObj = {}
  for (let i = 0; i < items.length; i++) {
    const item = items[i]
    const itemId = item.id
    newObj[itemId] = item
  }
  return newObj
}


function postsById (state = {}, action) {
  switch (action.type) {
    case RECEIVE_POSTS:
    case GET_POSTS_BY_CATEGORY:
      return { ...state, ...makeObj(action.posts) }

Esse reduce, já vi algumas vezes, como e porque deve ser utilizado?

const allIngredients = recipes.reduce(
    (ingredients, recipe) => [
      ...ingredients,
      ...recipe.ingredients.filter(
        ingredient => !ingredients.includes(ingredient),
      ),
    ],
    [],
  );
1 resposta
solução!

Olá Gisele, tudo bem?

Peço desculpa pela demora para responder o seu tópico.

Tratar dados é uma necessidade comum em programação, principalmente quando se trabalha com dados vindos de APIs. E é muito importante saber como transformar um array em objeto e vice-versa. Para estudar mais sobre isso, recomendo que você dê uma olhada na documentação do JavaScript sobre arrays e objetos. Lá você encontrará muitas informações e exemplos práticos.

Sobre o código que você postou, o primeiro trecho é uma função que recebe um array de objetos e retorna um objeto com as chaves sendo o valor da propriedade "id" de cada objeto. Essa função é útil quando se quer acessar um objeto específico num array de objetos de forma mais rápida.

Já o segundo trecho é um exemplo de como utilizar o método reduce() para transformar um array em outro. Nesse caso, o objetivo é criar um array com todos os ingredientes de todas as receitas, sem repetições. O reduce() é utilizado para percorrer o array de receitas e, em cada iteração, adicionar os ingredientes que ainda não foram adicionados ao array final.

Espero ter conseguido esclarecer a sua dúvida. Caso tenha mais alguma dúvida, com relação a esse tópico, estarei à disposição.

Bons estudos!

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