Sto cercando di utilizzare la funzione underscore.js _.map
su una matrice di oggetti, per ottenere una matrice con una proprietà di ciascun oggetto. Questo è lo scenario consueto, in modo da:Funzione Underscore.js _.map: salta un valore
var finalArray = _.map(myArray, function(obj) {
return obj.myProperty;
});
Ma in alcuni casi ho bisogno che nulla essere aggiunto nella matrice. Potrebbe essere qualcosa di simile:
var finalArray = _.map(myArray, function(obj) {
if (!obj.ignore) {
return obj.myProperty;
}
});
Il risultato di ciò è che un valore undefined
viene spinto nella matrice, che non è la stessa non spingere nulla.
C'è un modo per la funzione della mappa di non premere un valore, o ho bisogno di post-elaborare il mio finalArray
per rimuovere i undefined
indesiderati?
Penso che dovresti considerare di scegliere come risposta migliore quella di Thomas Eschemann, perché attraversa tutti gli elementi della matrice una sola volta come richiesto in "C'è un modo per la funzione della mappa di non spingere un valore", l'obiettivo principale per questa domanda. E la risposta è usare reduce() invece di map(). –
La risposta attualmente scelta è per la seconda parte della domanda "Devo post-processare il mio finalArray per rimuovere gli indefiniti indesiderati?". E la risposta alla seconda parte è: No, non è necessario post-processare finalArray(), è necessario usare reduce() invece di map() per evitare la post-elaborazione. –