Introdução
Neste laboratório, exploraremos o conceito de encontrar os últimos n elementos que satisfazem uma determinada condição em um array. Aprenderemos como usar um loop for para iterar pelo array e executar uma função fornecida em cada elemento. Também aprenderemos como usar o método Array.prototype.unshift() para adicionar elementos correspondentes ao início do array de resultados e retorná-lo assim que o comprimento desejado for atingido.
Instruções para encontrar as Últimas N Correspondências
Para encontrar os últimos n elementos que correspondem a uma determinada condição, siga estas etapas:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Use a função
findLastNfornecida abaixo. - Forneça um array
arre uma funçãomatcherque retorna um valor truthy para os elementos que você deseja corresponder. - Opcionalmente, você também pode fornecer o número
nde correspondências que deseja retornar (o padrão é 1). - A função executará a função
matcherpara cada elemento dearrusando um loopfor, começando pelo último elemento. - Se um elemento corresponder à condição
matcher, ele será adicionado ao array de resultados usandoArray.prototype.unshift(), que adiciona elementos ao início do array. - Quando o comprimento do array de resultados for igual a
n, a função retornará os resultados. - Se não houver correspondências ou se
nfor maior que o número de correspondências, um array vazio será retornado.
const findLastN = (arr, matcher, n = 1) => {
let res = [];
for (let i = arr.length - 1; i >= 0; i--) {
const el = arr[i];
const match = matcher(el, i, arr);
if (match) res.unshift(el);
if (res.length === n) return res;
}
return res;
};
Aqui estão alguns exemplos de como usar a função findLastN:
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 2); // [4, 6]
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 5); // [2, 4, 6]
Resumo
Parabéns! Você concluiu o laboratório "Find Last N Matches". Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.