コメントありがとうございます。 残念ながら、もうSlingboxを使っていないた…
JavaScriptで配列か連想配列かを判別する方法|Array.isArrayの使い方
JavaScriptで型判定したい
JavaScriptを書いていると、
「これは配列?」
「オブジェクト?」
「連想配列として扱われている?」
を判定したい場面があります。
特にJSON処理やAPIレスポンス処理ではよく使います。
JavaScriptの「連想配列」は実際にはObject
PHP経験者が混乱しやすいのですが、JavaScriptには厳密には
「連想配列」
という型は存在しません。
例えば、
const data = {
name: "Yasuo",
age: 30
};
これは配列ではなく、
Object
です。
通常配列の判定方法
配列判定なら、
Array.isArray()
を使うのが定番です。
例えば。
const data = [1,2,3]; console.log(Array.isArray(data));
結果。
true
Objectなら false になる
const data = {
name:"Yasuo"
};
console.log(Array.isArray(data));
結果。
false
になります。
typeof では判別できないことがある
初心者がやりがちなのが、
typeof data
です。
ですが、
配列でもObjectでも、
object
が返るため、正確に判定できません。
配列かつObjectなのがJavaScript
JavaScriptでは配列も内部的にはObject系です。
そのため、
typeof []
でも、
object
になります。
ここが混乱ポイントです。
null問題にも注意
さらに厄介なのが、
typeof null
も、
object
になる点です。
古くから有名なJavaScript仕様です。
Object判定する場合
単純Object判定なら、
!Array.isArray(data) && typeof data === 'object'
のように書くケースがあります。
ただし、
・null
・Date
・Map
などもあるため、用途次第です。
JSON処理ではよく使う
APIレスポンスで、
[
{...},
{...}
]
なのか、
{
result: {...}
}
なのか判定したい時によく使われます。
まとめ
JavaScriptで配列判定するなら、
Array.isArray()
を使うのが定番です。
typeof
だけでは、
・配列
・Object
・null
の区別が難しいため注意。
特にJavaScriptの「連想配列」は、実際にはObjectとして扱われる点を覚えておくと混乱しにくくなります。
検索

コメントを残す