javascript-tutorial / javascript-tutorial/en.javascript.info

Bug in solution of this task: https://javascript.info/array-methods#create-keyed-object-from-array

Aberta
#3,765 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
HTML
Estrelas
25.5k
Forks
4k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

There's a bug in the solution posted in this task.
The task requires us to group objects by id and put the grouped objects in an array keyed by id.
The solution posted is:

function groupById(array) {
  return array.reduce((obj, value) => {
    obj[value.id] = value;
    return obj;
  }, {})
}

However, this does not work when there are items in array with same id.
To accomplish the task correctly, the solution should be:

function groupById(array) {
  return array.reduce((obj, value) => {
    obj[value.id] == undefined ? obj[value.id] = [value] : obj[value.id].push(value);
    return obj;
  }, {})
}

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Abra a tarefa sobre métodos de array em javascript.info/array-methods#create-keyed-object-from-array e compare o requisito de agrupamento indicado com a solução publicada usando reduce. Atualize a solução documentada para que IDs repetidos mantenham todos os objetos agrupados e, em seguida, verifique se o exemplo e a explicação continuam correspondendo ao resultado corrigido.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript
Domínio
documentation
Tipo de issue
Bug
Dificuldade
2/5
Tempo estimado
1-3 horas
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
50/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.