Array.isArray() メソッドの使い方

2024-04-02

JavaScriptで変数が配列かどうかを確認する方法

Array.isArray() メソッドを使う

これは、変数が Array オブジェクトかどうかを直接チェックする最も簡単な方法です。

const isArray = Array.isArray(variable);

if (isArray) {
  // 変数は配列です
} else {
  // 変数は配列ではありません
}

instanceof 演算子は、変数のプロトタイプチェーンを遡って、指定されたオブジェクトのプロトタイプを持っているかどうかを確認します。

const isArray = variable instanceof Array;

if (isArray) {
  // 変数は配列です
} else {
  // 変数は配列ではありません
}

length プロパティを確認する

配列は length プロパティを持ち、これは配列内の要素数を持っています。

const isArray = variable.length !== undefined;

if (isArray) {
  // 変数は配列です
} else {
  // 変数は配列ではありません
}
  • 他のオブジェクトとの互換性を考慮する必要がある場合は、instanceof 演算子を使う方法が良いでしょう。
  • シンプルな方法でチェックしたい場合は、length プロパティを確認する方法を使うことができます。

その他の注意点

  • 上記の方法はいずれも、変数が Array オブジェクトかどうかをチェックします。
  • 配列のようなオブジェクト (配列リテラルなど) も、これらの方法で true と判定されます。
  • 厳密に配列かどうかを確認したい場合は、Array.isArray() メソッドを使うことをおすすめします。



// サンプルコード

// 配列
const array = [1, 2, 3];

// 配列のようなオブジェクト
const arrayLikeObject = {
  0: 1,
  1: 2,
  2: 3,
  length: 3,
};

// 文字列
const string = "Hello, world!";

// 数値
const number = 123;

// オブジェクト
const object = {
  name: "John Doe",
  age: 30,
};

// Array.isArray() メソッドを使用
console.log(Array.isArray(array)); // true
console.log(Array.isArray(arrayLikeObject)); // false
console.log(Array.isArray(string)); // false
console.log(Array.isArray(number)); // false
console.log(Array.isArray(object)); // false

// instanceof 演算子を使用
console.log(array instanceof Array); // true
console.log(arrayLikeObject instanceof Array); // false
console.log(string instanceof Array); // false
console.log(number instanceof Array); // false
console.log(object instanceof Array); // false

// length プロパティを使用
console.log(array.length !== undefined); // true
console.log(arrayLikeObject.length !== undefined); // true
console.log(string.length !== undefined); // true
console.log(number.length !== undefined); // false
console.log(object.length !== undefined); // false

出力結果

true
false
false
false
false
true
false
false
false
false
true
true
false
false
false



JavaScriptで変数が配列かどうかを確認する他の方法

Object.prototype.toString.call() メソッドは、オブジェクトの型を文字列で返します。

const isArray = Object.prototype.toString.call(variable) === '[object Array]';

if (isArray) {
  // 変数は配列です
} else {
  // 変数は配列ではありません
}

Array.prototype.constructor プロパティは、配列オブジェクトのコンストラクタを指します。

const isArray = variable.constructor === Array;

if (isArray) {
  // 変数は配列です
} else {
  // 変数は配列ではありません
}

for...in ループを使用して、変数のプロパティをループ処理し、length プロパティが存在するかどうかを確認できます。

const isArray = (function() {
  for (const prop in variable) {
    if (prop === 'length') {
      return true;
    }
  }
  return false;
})();

if (isArray) {
  // 変数は配列です
} else {
  // 変数は配列ではありません
}
  • 上記の方法でうまくいかない場合は、他の方法を試してみる必要があります。

注意:

上記の方法の中には、古いブラウザではサポートされていないものがあります。


javascript arrays list


JavaScript/HTML/CSSで「Wait cursor over entire html page」を実現する方法

CSSのみを使用する方法は、最もシンプルで簡単です。以下のコードをHTMLファイルの <head> 要素内に追加します。このコードは、body 要素のカーソルを wait に設定します。wait カーソルは、ブラウザによって異なりますが、一般的には砂時計のようなアニメーションが表示されます。...


【超便利】jQueryで隠されたinput値をカンタン操作!サンプルコードでわかりやすく解説

方法1:IDを使ってアクセスする隠された入力フィールドにIDが設定されている場合は、$('#ID') セレクターを使ってその要素を取得し、val() メソッドを使って値を取得できます。補足複数の隠された入力フィールドがある場合は、$('input[type="hidden"]') セレクターを使ってすべての要素を取得し、それぞれに対して val() メソッドを実行できます。...


JavaScript、jQuery、CSS を使用して CSS3 トランジションの終了を待機する方法

このチュートリアルを始める前に、以下の知識が必要です。HTMLCSSJavaScriptjQueryCSS トランジションは、要素のプロパティを徐々に変化させるアニメーションを作成するための強力なツールです。トランジションは、duration、timing-function、delay などのプロパティを使用して制御できます。...


JavaScriptでモーダルウィンドウを開いた時にBODYのスクロールを防止する

overflow プロパティを使用する最も簡単な方法は、body 要素に overflow: hidden; を設定することです。これは、モーダルが開いている間、BODY要素のスクロールを無効にします。position: fixed; を body 要素に設定すると、モーダルが開いている間、BODY要素が画面に固定されます。...


Node.js アプリケーションで発生する "FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory" エラーの解決方法

このエラーは、Node. js アプリケーションが処理に必要なメモリを確保できない場合に発生します。ヒープメモリとは、JavaScript で実行されるプログラムがオブジェクトを格納するために使用する領域です。原因:大量のデータを処理している場合...


SQL SQL SQL SQL Amazon で見る



【完全ガイド】JavaScriptでオブジェクトが配列かどうかを判定する7つの方法

Array. isArray()を使うこれは最もシンプルで確実な方法です。Array. isArray() メソッドは、引数が配列であれば true を返し、そうでなければ false を返します。instanceof 演算子は、オブジェクトが特定のコンストラクタのインスタンスかどうかを確認するために使用できます。