InstruçÔes

Implementar um Filtro de Objeto de CorrespondĂȘncia

Neste laboratĂłrio, vocĂȘ criarĂĄ uma função que filtra um array de objetos e retorna apenas aqueles objetos que correspondem a todos os pares chave-valor em um dado objeto fonte. Objetivo: Cumprir as user stories abaixo e fazer com que todos os testes passem para completar o laboratĂłrio. HistĂłrias de UsuĂĄrio: 1. VocĂȘ deve ter uma função whatIsInAName que aceita dois argumentos, um array de objetos e um objeto source. 1. A função whatIsInAName deve retornar um novo array contendo apenas os objetos da coleção que possuem todos os pares chave–valor presentes no objeto source. 1. Se nenhum objeto corresponder a todos os pares chave–valor da fonte, a função deve retornar um array vazio. Por exemplo:
whatIsInAName(
  [
    { first: "Romeo", last: "Montague" },
    { first: "Mercutio", last: null },
    { first: "Tybalt", last: "Capulet" }
  ],
  { last: "Capulet" }
);
// should return [{ first: "Tybalt", last: "Capulet" }]

O que fazer:

Testes:

  • VocĂȘ deve ter uma função `whatIsInAName`.
  • `whatIsInAName([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" })` deve retornar `[{ first: "Tybalt", last: "Capulet" }]`.
  • `whatIsInAName([{ "apple": 1 }, { "apple": 1 }, { "apple": 1, "bat": 2 }], { "apple": 1 })` deve retornar `[{"apple": 1}, {"apple": 1}, {"apple": 1, "bat": 2}]`.
  • `whatIsInAName([{ "apple": 1, "bat": 2 }, { "bat": 2 }, { "apple": 1, "bat": 2, "cookie": 2 }], { "apple": 1, "bat": 2 })` deve retornar `[{"apple": 1, "bat": 2}, {"apple": 1, "bat": 2, "cookie": 2}]`.
  • `whatIsInAName([{ "apple": 1, "bat": 2 }, { "apple": 1 }, { "apple": 1, "bat": 2, "cookie": 2 }], { "apple": 1, "cookie": 2 })` deve retornar `[{"apple": 1, "bat": 2, "cookie": 2}]`.
  • `whatIsInAName([{ "apple": 1, "bat": 2 }, { "apple": 1 }, { "apple": 1, "bat": 2, "cookie": 2 }, { "bat": 2 }], { "apple": 1, "bat": 2 })` deve retornar `[{"apple": 1, "bat": 2}, {"apple": 1, "bat": 2, "cookie": 2}]`
  • `whatIsInAName([{"a": 1, "b": 2, "c": 3}], {"a": 1, "b": 9999, "c": 3})` deve retornar `[]`.
  • `whatIsInAName([{"a": 1, "b": 2, "c": 3, "d": 9999}], {"a": 1, "b": 9999, "c": 3})` deve retornar `[]`.

Preview