ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でオブジェクトが配列であるかどうかを判断するいくつかの方法 (概要)

JavaScript でオブジェクトが配列であるかどうかを判断するいくつかの方法 (概要)

青灯夜游
青灯夜游転載
2021-04-02 10:05:323536ブラウズ

この記事では、オブジェクトが配列であるかどうかを判断するためのいくつかの JavaScript メソッドを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

JavaScript でオブジェクトが配列であるかどうかを判断するいくつかの方法 (概要)

JS での配列の使用は一般的な操作です。開発中に、配列である必要がある変数を取得することがありますが、それが配列であるかどうかはわかりません。何をすべきでしょうか? 配列であるかどうかを判断するにはどうすればよいですか?

JS の非プリミティブ データ型はオブジェクトです (関数には独自の型がありますが、それらもオブジェクトです)。したがって、typeof 演算子を使用して判断するだけでは不十分です。

let result = { subject: 'Science', marks: 97 };
let numbers = [1, 2, 3, 4, 5];

console.log(typeof result); // Object
console.log(typeof numbers); // Object

この記事では、指定された変数または値が JS の配列であるかどうかを確認する方法を見てみましょう。 [関連チュートリアルの推奨事項: JavaScript ビデオ チュートリアル ]

Array.isArray() メソッドを使用する

名前が示すように、このメソッドは次のようになります。指定されたパラメータを識別するために使用されます。配列であっても、ブール値 (true/false) と結果を返します。

たとえば、次の変数を使用すると、Array.isArray() メソッドは、それが配列であるかどうかを正しく判断できます。

let result = { subject: "Science", marks: 97 }; // Object
let numbers = [1, 2, 3, 4, 5]; // Array
let name = "Mark"; // String
let names = new Array("Jill", "Jane", "Jacqueline");

console.log(Array.isArray(result)); // false
console.log(Array.isArray(numbers)); // true
console.log(Array.isArray(name)); // false
console.log(Array.isArray(names)); // true

オブジェクトのコンストラクターを使用します。属性

すべてのオブジェクトには、constructor プロパティがあります (例外として、object.create(null) を使用して作成されたオブジェクトは、発生する可能性は低いです)。 constructor 属性を JS コンストラクターと直接比較できます。したがって、それを配列コンストラクターと比較すると、それが配列であるかどうかがわかります。

: コンストラクターは、オブジェクトを初期化するために使用される関数です。 new キーワードを使用してオブジェクトが作成された場合は、コンストラクターが使用されます。たとえば、let myArray = new Array(1,2) では、使用されるコンストラクターは Array() です。

constructor 属性を使用して、変数が配列であるかどうかを判断できます。

let result = { subject: "Science", marks: 97 };
let numbers = [1, 2, 3, 4, 5];
let name = "Mark";
let names = new Array("小智", "小力", "小吴");

console.log(result.constructor === Array); // false
console.log(numbers.constructor === Array); // true
console.log(name.constructor === Array); // false
console.log(names.constructor === Array); // true

instanceof 演算子を使用します

instanceof 演算子は、コンストラクターがオブジェクトのプロトタイプ チェーン内にあるかどうかを確認します。

typeof 演算子と同様に、ブール値を返します。変数が配列であるかどうかを判断するには、次のように instanceof を使用できます。

let result = { subject: "Science", marks: 97 };
let numbers = [1, 2, 3, 4, 5];
let name = "Mark";
let names = new Array("小智", "小力", "小吴");

console.log(result instanceof Array); // false
console.log(numbers instanceof Array); // true
console.log(name instanceof Array); // false
console.log(names instanceof Array); // true

Object.prototype.call() メソッドを使用します

#JS 内のすべてのオブジェクトは、

Object.prototype という名前のメイン プロトタイプ オブジェクトからプロパティを継承します。 toString() メソッドは Object.prototype に存在します。これが、各オブジェクトに独自の toString() メソッドがある理由です。 toString() メソッドは、オブジェクトのタイプを表示します。 オブジェクトの

call()

メソッドは関数を実行しますが、this 値を引数として渡されたオブジェクトに変更します。たとえば、あるオブジェクトが別のオブジェクトを使用できるようにします。オブジェクトのメソッド。 したがって、

Object.prototype.toString()

を使用して型を出力し、次に call() を使用して別のオブジェクトを処理し、文字列を比較できます。値を使用して配列かどうかを判断します。 <pre class="brush:js;toolbar:false;">let result = { subject: &quot;Science&quot;, marks: 97 }; let numbers = [1, 2, 3, 4, 5]; let name = &quot;Mark&quot;; let names = new Array(&quot;小智&quot;, &quot;小力&quot;, &quot;小吴&quot;); console.log(Object.prototype.toString.call(result)); // [object Object] console.log(Object.prototype.toString.call(numbers)); // [object Array] console.log(Object.prototype.toString.call(name)); // [object String] console.log(Object.prototype.toString.call(names)); // [object Array] console.log(Object.prototype.toString.call(result) === &quot;[object Array]&quot;); // false console.log(Object.prototype.toString.call(numbers) === &quot;[object Array]&quot;); // true console.log(Object.prototype.toString.call(name) === &quot;[object Array]&quot;); // false console.log(Object.prototype.toString.call(names) === &quot;[object Array]&quot;); // true</pre>この方法を使用する可能性は低いですが、JS オブジェクトについて詳しく学ぶことは決して悪いことではありません。

概要

この記事では、次のことを調べました。 JS では、オブジェクトが配列であるかどうかを判断するいくつかの方法があります。最も単純な方法は

Array.isArray()

メソッドであり、将来ほとんどの友人がこれを使用する可能性があります。 ただし、

instanceof

演算子やその他のオブジェクト プロパティを利用して、それが配列であるかどうかを判断することもできます。

元のアドレス: https://stackabuse.com/javascript-check-if-object-is-array/

著者: ゲスト寄稿者

翻訳アドレス:https://segmentfault.com/a/1190000038661505

プログラミング関連の知識については、
プログラミング ビデオ

をご覧ください。 !

以上がJavaScript でオブジェクトが配列であるかどうかを判断するいくつかの方法 (概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。