JavaScriptで変数が配列か判定する方法(isArray)

JavaScript

JavaScriptで変数が配列か判定する方法について書いています。
配列か判定するにはArray.isArrayを使うと良いです。

Array.isArrayで配列か判定する

変数や値が配列か判定するには、Array.isArrayを使うことで確認できます。
例えば、下記のように使うことができます。

let fruits = ['apple', 'orange', 'grape']

let result = Array.isArray(fruits)
console.log(result) // true

fruits変数に3つの要素で配列を作成しました。

次の処理で、配列かどうか判定しています。
Array.isArrayに変数や値を渡すことで、配列か判定してくれます。
判定した結果、配列の場合にはtrueが返ってきて、そうでない場合にはfalseが返ってきます。

今回渡したfruits変数は、配列になっているのでtrueが返ってきます。
result変数で受け取って、console.logで出力すると、trueが返ってきたことが確認できました。

オブジェクトはもちろんfalseに

配列を含んでいてもオブジェクトを渡すと、falseが返ってきます。

let fruits = {items: ['apple', 'orange', 'grape'], size:3}

let result = Array.isArray(fruits)
console.log(result) // false

fruits変数にオブジェクトを作成しました。
fruits.itemsには配列が入っていますが、このままfruitsを渡すと、オブジェクトなのでfalseが返ってきます。

下記のように、配列にアクセスして判定した場合には、もちろんtrueになります。

let fruits = {items: ['apple', 'orange', 'grape'], size:3}

let result = Array.isArray(fruits.items)
console.log(result) // true

Array.isArrayを使った判定サンプル7選

Array.isArrayを使って、7つの値を判定してみました。

数値

数値のときもfalseになりました。

let result = Array.isArray(777)
console.log(result) // false

文字列

文字列のときもfalseになりました。

let result = Array.isArray("test")
console.log(result) // false

null

nullのときもfalseになりました。

let result = Array.isArray(null)
console.log(result) // false

undefined

undefinedのときもfalseになりました。

let result = Array.isArray(undefined)
console.log(result) // false

newで配列作成

new Arrayで配列を作った場合にも、配列なのでtrueになります。

let result = Array.isArray(new Array(1, 2, 3))
console.log(result) // true

空配列

空配列も配列なのでtrueです。

let result = Array.isArray([])
console.log(result) // true

配列

配列を直接渡しても、もちろんtrueが返ってきます。

let result = Array.isArray(['beer'])
console.log(result) // true

変数が配列か判定する方法まとめ

今回は変数や値が配列か判定する方法について書きました。
Array.isArrayを使うことで、簡単に判定することができました。

最後のサンプルを表にまとめると、下記のようになります。

項目 結果
数値 Array.isArray(777) false
文字列 Array.isArray("test") false
null Array.isArray(null) false
undefined Array.isArray(undefined) false
newで配列作成 Array.isArray(new Array(1, 2, 3)) true
空配列 Array.isArray([]) true
配列 Array.isArray(['beer']) true

空配列の場合でもしっかりとtrueを返してくれました。

コメント

タイトルとURLをコピーしました