Instruções

Construir uma Coleção de Registros

Você está criando uma função que ajuda na manutenção de uma coleção de álbuns musicais. A coleção está organizada como um objeto que contém múltiplos álbuns que também são objetos. Cada álbum é representado na coleção com um id único como o nome da propriedade. Dentro de cada objeto de álbum, existem várias propriedades descrevendo informações sobre o álbum. Nem todos os álbuns possuem informações completas. A função updateRecords recebe 4 argumentos representados pelos seguintes parâmetros de função:
  • records – um objeto contendo vários álbuns individuais
  • id – um número que representa um álbum específico no objeto records
  • prop – uma string que representa o nome da propriedade do álbum a ser atualizada
  • value – uma string contendo informações usadas para atualizar a propriedade do álbum
Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório. Histórias de Usuário: 1. A função precisa sempre retornar todo o objeto records. 2. Se value for uma string vazia, remova a propriedade prop recebida do álbum. 3. Se prop não for tracks e value não for uma string vazia, atribua value à prop daquele álbum. 4. Se prop for tracks e value não for uma string vazia e se o álbum não tiver uma propriedade tracks, crie um array vazio e adicione value a ele. 5. Se prop for tracks e value não for uma string vazia, adicione value ao final do array existente de tracks do álbum. Nota: Uma cópia do objeto recordCollection é usada para os testes. Sua função não deve se referir diretamente ao objeto recordCollection, apenas ao parâmetro da função.

O que fazer:

Testes:

  • Você deve ter uma função `updateRecords`.
  • Após `updateRecords(recordCollection, 5439, "artist", "ABBA")`, `artist` deve ter a string `ABBA`.
  • Após `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")`, `tracks` deve ter a string `Take a Chance on Me` como o último e único elemento.
  • Após `updateRecords(recordCollection, 2548, "artist", "")`, `artist` não deve ser definido.
  • Após `updateRecords(recordCollection, 1245, "tracks", "Addicted to Love")`, `tracks` deve ter a string `Addicted to Love` como o último elemento.
  • Após `updateRecords(recordCollection, 2468, "tracks", "Free")`, `tracks` deve ter a string `1999` como o último elemento. Após.
  • Após `updateRecords(recordCollection, 2548, "tracks", "")`, `tracks` não deve ser definido.
  • Após `updateRecords(recordCollection, 1245, "albumTitle", "Riptide")`, `albumTitle` deve ser a string `Riptide`.

Console