Questa domanda può essere applicata ad altre lingue, ma riguarda esplicitamente JavaScript.
Ho cercato di scrivere un'implementazione di valutazione pigra per filtrare attraverso una serie di elementi. Il processo di filtro può essere costituito da 2 funzioni, F e G, che controllano un elemento contro una certa logica e restituiscono un booleano che viene utilizzato per determinare se l'elemento apparirà o meno nell'array finale risultante.
Questo è quello che sembrerebbe utilizzare tradizionalmente i metodi incorporati.
const result = elements.filter(F).filter(G);
Questo è il mio primo tentativo di scrivere un metodo di valutazione pigro per gestire lo stesso scenario SENZA restituire array intermittenti e chiamare il metodo intermedio filter
:
for (let i = 0; i < elements.length; i++) {
if (F(elements[i])) {
if (G(elements[i])) {
newArray.push(elements[i]);
}
}
}
Ora so che il mio codice è strabiliante e sbagliato perché ho guardato altre librerie che usano iteratori e generatori. Perché?
Perché non usare un ciclo for se la collezione è un array? Cosa lo rende più veloce, se lo è?