function bouncer(arr) {
var array = [false, null, 0, NaN, undefined, ""];
var result = [];
for (var i = 0; i < arr.length; i++) {
if (array.indexOf(arr[i]) === -1) {
result.push(arr[i]);
}
}
return result;
}
ex : bouncer([7, "ate", "", false, 9]) should return [7, "ate", 9].
Hallo allerseits, Ich versuche, all fälschlicherweise Werte zu löschen, die in dem Array eingegeben werden, aber für irgendwie, wenn ich bouncer([false,null, 0, NaN, undefined, ""]);
betreiben ich [NaN]
als Rückgabewert bekommen, während ich ein leeres Array erwarten. Weiß jemand, warum die Funktion die falschen Werte zurückgibt?Wie gibt die indexOf-Methode den falschen Wert zurück?
'NaN' sich nicht gleich ist. – tkausl
Dies ist eine doppelte Frage: http://stackoverflow.com/questions/32906887/remove-all-falsy-values-from-an-array – HenryDev
Eigentlich 'if (!! arr [i])' sogar für NaN arbeitet –