0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【JS】配列に要素が入っているかで処理を分岐する方法

Last updated at Posted at 2020-10-29

配列に要素があるかどうかで処理を分岐する方法について。

配列の長さが空(null)になることを利用する。

if(arr.length == 0){処理}

arr = [ ]

if(arr.length == 0){
    console.log('配列は空です')
}else{
    console.log('要素があります')
}

//出力
配列は空です

この方法を使えば、配列の要素に意図的にnullという要素を入れた場合も、要素ありとして認識できる。

値がnullの場合
arr = [null]

if(arr.length == 0){
    console.log('配列は空です')
}else{
    console.log('要素があります')
}

//出力
要素があります

##nullの罠(ただのパターン思考不足です、、) 要素がない場合、配列はnullを返す。

これを利用して要素の有無を判定しようとすると、意図的にnullが入っている場合に、要素なしと出てしまう。

if(arr[0] == null){処理}


要素がない場合は機能(限定的)
arr = []

if(arr[0] == null){
    console.log('配列は空です')
}else{
    console.log('要素があります')
}

//出力
配列は空です

**▼【NG】0番目にnullが入っていると欲しい挙動と異なる**
NG
arr = [null,1,2,3]

if(arr[0] == null){
    console.log('配列は空です')
}else{
    console.log('要素があります')
}


//出力
配列は空です

@vf8974さん、@sdkeiさんからのありがたいご指摘に感謝。
0
0
3

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?