ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptで配列のようなオブジェクトを定義する方法

JavaScriptで配列のようなオブジェクトを定義する方法

醉折花枝作酒筹
醉折花枝作酒筹オリジナル
2021-07-22 11:09:074011ブラウズ

JavaScript で配列のようなオブジェクトを定義する方法は次のとおりです: 1. 最初に空のオブジェクトを作成します; 2. オブジェクトの数値添え字属性を直接定義します; 3. 重要な点は長さ属性を設定することですそして、オブジェクトの属性を数値と関数に接続します。

JavaScriptで配列のようなオブジェクトを定義する方法

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

js には配列のようなオブジェクトがたくさんあります。単純な概念は、それらは配列のように見えますが、配列ではないということです。これらのオブジェクトには、数値添字を使用してアクセスできますが、配列メソッドはありません。

例: 引数、NodeList、HTMLCollection、jQuery など

配列状オブジェクトの特徴

1. length 属性を持つ

var a=document.getElementsByTagName("p");
a.__proto__;// HTMLCollection {} 属于类数组对象a.length;//62

2. 数値添字を使用してオブジェクトにアクセスできます

a[0];//<p class="aspNetHidden">…</p>

3. 配列プロトタイプ メソッド (スライス、ポップなど) は使用できません

a.slice;//undefined Error!
a.pop;//undefined Error!

4.instanceof の使用操作は Array

[] instanceof Array;//true
a instanceof Array;//false

5 に属していません。実数配列オブジェクトに変換できます

var arr = Array.prototype.slice.call(a);
arr instanceof Array;//true

PS: 一部のオブジェクトは、IE8 ではスライス メソッドを使用して実数配列オブジェクトに変換できないことに注意してください。 。

配列のようなオブジェクトを変換するには、jquery が提供する $.makeArray() メソッドを使用することをお勧めします

6。通常は他のカスタム属性を定義できます

a.item;//function item() { [native code] }

配列型オブジェクト メリット

メリットについては、あまり説明する必要もないと思いますが、jsでも他のバックエンド言語と同様の操作方法が可能になります。

たとえば、C# の一部のリスト コレクションは、数値添字 list[0] または文字列名 list['name'] を使用して同じオブジェクトにアクセスできます。

同時に同時に、さまざまなカスタム メソッド、カスタム属性も備えており、jquery オブジェクトのエレガントなアクセス メソッドによって、このような素晴らしいオブジェクトが素晴らしいオブジェクトであることがわかります。

配列のようなオブジェクトを手動で作成する方法

配列のようなオブジェクトを手動で作成する方法のトピックに戻ります。

1. まず空のオブジェクトを作成します

var array_like = {};//创建一个空对象

2. オブジェクトの数値添字属性を直接定義します。これは他の言語では絶対に許可されません。オブジェクト属性を数字で始めることはできませんが、数字で始めることは可能ですJS では中国語でも可能です

array_like[ 0 ] = "test 0";
array_like[ 1 ] = "test 1";
array_like[ 2 ] = "test 2";
array_like[ 3 ] = "test 3";

3。重要な点は、オブジェクトの長さ属性とスプライス属性を数値と関数として設定することです

//关键点
array_like.length = 4;//为对象设置length属性
array_like.splice = [].splice;//同时设置splice属性为一个函数

PS: スプライス属性の設定は実際にはブラウザのコンソールを欺いて配列を表示するには、ここを参照してください。

4、test

//设定自定义属性
array_like.test0=array_like[0];
array_like.test1=array_like[1];
//直接输出
console.log( array_like );//[&#39;test 0&#39;,&#39;test 1&#39;...]
//类型
console.log( $.type( array_like ) );//"object"
//数字下标访问
console.log( array_like[ 0 ] );//"test 0"
//自定义属性访问
array_like.test0;//"test 0"
//不是数组对象
array_like instanceof Array;//false
//转换为真数组对象
var Arr=Array.prototype.slice.call(array_like);
Arr instanceof Array;//true

5、完全なコード:

var array_like = {};

array_like[ 0 ] = "test 0";
array_like[ 1 ] = "test 1";
array_like[ 2 ] = "test 2";
array_like[ 3 ] = "test 3";

array_like.length = 4;
array_like.splice = [].splice;

console.log( array_like );
console.log( $.type( array_like ) );
console.log( array_like[ 2 ] );

[推奨学習 :JavaScript 上級チュートリアル ##]

以上がJavaScriptで配列のようなオブジェクトを定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。