配列に要素があるかどうかで処理を分岐する方法について。
配列の長さが空(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さんからのありがたいご指摘に感謝。