私は今、練習をしており、なぜこれが未定義に戻っているのか理解できません。この関数はなぜ未定義に戻っていますか?
function every(array, compare) {
var newArray = array.filter(
function(property) {
return compare(property);
}
);
if (newArray === undefined || newArray.length == 0) {
return false;
}
}
console.log(every([NaN, NaN, NaN], isNaN));
// → true
console.log(every([NaN, NaN, 4], isNaN));
// → false
ご覧のとおり、私は真と偽になるはずですが、代わりに私は定義されていません。これはなぜですか?私はisNaNを正しく理解していないからだと思うが、100%確実ではない。
'if'が実行されない場合はどうなりますか?関数はデフォルトで 'undefined'を返します... – elclanrs
'私は真と偽になるはずです ' - あなたの関数はいつ真を返しますか? – Adam
'filter'内部の' return'は 'every'関数から戻ってこないことに注意してください。ただ一つの配列要素のフィルタ結果を決定するだけです。 – Thilo