Wie filter() NaN, null, 0, false, array (JS)

Wurde ich gebeten, heraus zu filtern, NaN, null, 0, false in einem array.

Glücklicherweise habe ich die Frage beantwortet.

function bouncer(arr) {
  function filterer(arr) {
     return arr > 0|| isNaN(arr) === true;
  }
  arr = arr.filter(filterer);
  return arr;
}

//example input
bouncer([0, 1, 2, 3, 'ate', '', false]); //output [1, 2, 3, 'ate']

aber die Sache ist ich weiß wirklich nicht, wie ich kam mit der Antwort oder eher ich weiß nicht, wie es funktioniert. Speziell auf arr > 0 wie hast den filter wissen, dass die arr ist bereits auf arr[1], arr[2], etc.. ohne die Verwendung einer Schleife zu Durchlaufen, die in allen Arrays.

oder einfach nur erklären, wie code funktioniert. [Ich habe versucht, es zu erklären, klar ---]

Dein code ist falsch. Es schlägt für Werte wie -1... Versuchen arr.filter(function(item) {return !!item;})
warum nicht [0, 1, 2, 3, 'ate', '', false].filter(Boolean) ?
ja Boolean filter ist der beste, es sei denn, Sie wollen zu halten, undefined
Wenn Sie entfernen isNaN dann @MattBurland ate wird auch entfernen, Ausgabe [1, 2, 3]
Fairer Punkt, verpasste ich ate.

InformationsquelleAutor Fhrey | 2015-08-10

Schreibe einen Kommentar