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