5
1

どうもこんにちは。

今回は、今日ドジったことを忘れないようにメモしておきます。

コード

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で配列が空か判定するためには、「length00以上か」を判定する必要があるようです。

以上

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1