2017-04-07 2 views
0

ちょっと私の脳を掘り下げてこの記事の記事を読んでいて、私が読んだことはすべて「ある文字列」や「a」が真実だと言われています。文字列や文字が間違っていると言った偽の項目を除外するために配列をテストしてください。私はisNaN(arr[i]) === trueはそれを渡すように引き起こしている私のコードですなぜ文字か文字列がjavascriptで偽であると考えられるのですか

​​

+1

明確にするために、どのような比較(など)を質問していますか? –

+2

'if(arr [i])'だけで十分ですか? 'arr [i]'が偽であるかどうかをチェックするには! 'if(arr [i]){truthy} else {falsy}'!あるいは 'NOT!' 'if(!arr [i]){falsy}'を使って! –

答えて

0

を参照してください、ますisNaN( "いくつかの文字列")になります。

試してみてください。

function filter(arr) { 
    var filteredArray = []; 

    for (var i = 0; i < arr.length; i++) { 
    if (arr[i]) { 
     filteredArray.push(arr[i]); 
    } 
    } 
    return filteredArray; 
} 

はあなたも

if (arr[i] == false) { 
} 

によって

if (arr[i]) { 
} 

を置き換えることができます覚えておいてください===また、値のタイプに比較しています。

0

数値として解析できない文字列はNaNに強制されるため、問題はisNaN(arr[i])です。 isNaNを使用する場合は、番号であるかどうか最初にテストする必要があります。あなたはまた、Number.isNaN(arr[i])を使用することができます

(typeof arr[i] === 'number' && isNaN(arr[i])) 

:だからと

isNaN(arr[i]) === true 

を交換してください。これは引数を最初に強制するのではなく、引数が数値でなければfalseを返します。

+0

@dandavisありがとう、私は答えにそれを加えました。 – Barmar

関連する問題