どうもこんにちは。
今回は、今日ドジったことを忘れないようにメモしておきます。
コード
var humanData = [ [], [] ]
if ( humanData[0] != [] && humanData[1] != [] ){
console.log("空なのに実行されちゃうよん");
}
if ( humanData[0].length > 0 && humanData[1].length > 0 ){
console.log("これなら実行されないよん");
}
解説
Rubyなら、if humanData[0] != [] && humanData[1] != [] ... end
で書けるんですけどね...
JavaScriptだと、これじゃ書けないみたいです。理由は、「配列の参照(オブジェクトのメモリアドレス)を比較するため、常に false となってしまうから」のようです。
ほうほう...
JavaScriptで配列が空か判定するためには、「length
が0か0以上か」を判定する必要があるようです。
以上