Un modello di codice JavaScript che coinvolge l'identità sta filtrando i valori in base alla verità, ad es.
var a = [null, null, [1,2,3], null, [10, 12], null];
a.filter(_.identity)
rese [matrice [3], matrice [2]].
Uso
_.compact(a)
è chiara, ma non si può usare lodash o sottolineatura affatto, ad esempio
function identity(x) {
return x;
}
a.filter(identity)
Che si tratti di un buon modello di codice è discutibile per diversi motivi, ma è in uso allo stato selvatico.
Non è un NOOP. Un NOOP è un costrutto imperativo, ad es. assembly, mentre nella programmazione funzionale, è come altre funzioni in quanto restituisce un valore. Se l'identità fosse un NOOP, allora tutte le funzioni pure potrebbero anche essere considerate noop, e non sarebbe una cosa sensata.
fonte
2014-09-14 09:08:48
Solo per il gusto: è possibile vedere questo noop nella [fonte annotata] (http://underscorejs.org/docs/underscore.html#section-118). –
@DanLee, non posso contrassegnare il commento come risposta. – SunnyShah
@SunnyShah Non è la mia risposta, solo il mio commento. Penso che tu possa segnare la risposta di Matt in pochi minuti. –