ホームページ  >  記事  >  ウェブフロントエンド  >  jQueryの.makeArray()関数の使い方を詳しく解説

jQueryの.makeArray()関数の使い方を詳しく解説

黄舟
黄舟オリジナル
2017-07-19 09:22:311424ブラウズ

jQuery.makeArray() jQuery.makeArray()函数用于将一个类数组对象转换为真正的数组对象

所谓"类数组对象"就是一个常规的Object对象,但它和数组对象非常相似:具备length属性,并以0、1、2、3……等数字作为属性名。

不过它毕竟不是数组,没有从数组的原型对象上继承下来的内置方法(例如:push()、 sort()等)。


jQuery.makeArray( object )

注意事项

  • 一个类数组对象,它至少应该具备length属性,哪怕其值为 0,它可以没有"元素"(相当于空数组)。

  • 如果参数object没有length属性,则它不是类数组对象。jQuery.makeArray()会直接将其视作结果数组中的一个元素。

  • String对象虽然有length属性,但一般不将其视作类数组对象。该函数仍然直接将其视作结果数组中的一个元素。

  • 如果对象的最大数字属性大于或等于length属性,则以length属性为准,大于或等于其值的数字属性将被忽略。

返回值

jQuery.makeArray()函数的返回值为Array类型,返回转换后的数组对象。

---------------------------------------------------------------------------------------

类数组对象是非常常见的,例如我们经常使用的jQuery对象NodeList对象以及函数内的arguments对象,都是类数组对象。它们都具有length属性,而且通过数字属性来访问对应的元素或参数。不过,它们毕竟不是真正的数组对象,因此无法使用数组对方的内置方法。通过jQuery.makeArray() 関数は、のような配列オブジェクト

を実際の配列オブジェクト

に変換するために使用されます。 。

いわゆる「配列のようなオブジェクト」は通常の Object オブジェクトですが、配列オブジェクトとよく似ています。長さ属性があり、0 で始まります。 、1、2、3... ... などの数値を属性名として使用します。


しかし、結局のところ、これは配列ではなく、配列のプロトタイプ オブジェクトから継承された組み込みメソッドはありません (例: Push()、sort() )など)。


//在当前页面内追加换行标签和指定的HTML内容function w(html) {    //document.body.innerHTML += "<br/>" + html;    console.log(html);
}var obj = {    0: "CodePlayer",    1: "Hello",    2: 18,    3: true};
obj.length = 4;// 类数组对象不是真正的数组w(obj instanceof Array); // falsevar arr = $.makeArray(obj);
w(arr instanceof Array); // truew(arr.join(" ")); // CodePlayer Hello 18 truew(arr.length); // 4var obj2 = {};
obj2[2] = "DIY";
obj2.length = 1;var arr2 = $.makeArray(obj2);
w(arr2 instanceof Array); // truew(arr2.length); // 1var obj3 = {};
obj3.length = 0;var arr3 = $.makeArray(obj3);
w(arr3 instanceof Array); // truew(arr3.length); // 0var obj4 = {};// 由于obj4没有length属性,直接将其转换为结果数组中的一个元素var arr4 = $.makeArray(obj4);
w(arr4 instanceof Array); // truew(arr4.length); // 1w(arr4[0]); // [object Object]// 虽然字符串有length属性,但它仍被视作结果数组中的一个元素var arr5 = $.makeArray("CodePlayer");
w(arr5 instanceof Array); // truew(arr5.length); // 1w(arr5[0]); // CodePlayer


注意事項

: 🎜
  • 🎜配列のようなオブジェクトには、少なくとも length 属性が必要です。たとえその値が 0 であっても、それは保持します。 「要素」(空の配列と同等)である必要はありません。 🎜
  • 🎜 パラメーター object に長さ属性がない場合、それは配列のようなオブジェクトではありません。 jQuery.makeArray() は、結果配列の要素として直接処理します。 🎜
  • 🎜 String オブジェクトには長さ属性がありますが、通常は配列のようなオブジェクトとは見なされません。関数は引き続き結果配列の要素として直接それを扱います。 🎜
  • 🎜 オブジェクトの最大の数値属性が長さ属性以上の場合、長さ属性が優先され、その値以上の数値属性は無視されます。 🎜

戻り値

🎜jQuery.makeArray()関数の戻り値は配列型で、戻り値は変換された配列オブジェクトです。 🎜🎜🎜-------------------------------------- ----------------------------------------🎜🎜 🎜配列のようなオブジェクトは、よく使用される jQuery オブジェクト🎜、NodeList オブジェクト🎜、argumentsオブジェクト🎜は、どちらも配列のようなオブジェクトです。これらはすべて長さ属性を持ち、対応する要素またはパラメーターには数値属性を通じてアクセスします。ただし、結局のところ、これらは実際の配列オブジェクトではないため、対応する配列の組み込みメソッドを使用することはできません。 jQuery.makeArray() 関数を使用すると、配列のようなオブジェクトを実際の配列オブジェクトに変換でき、それによって配列オブジェクトの組み込みメソッドを使用できます。 🎜🎜🎜🎜 栗: 🎜🎜🎜🎜🎜
// jQuery对象也是一个类数组对象var $p = $("p");var arr1 = $.makeArray( $p );
w( $p instanceof Array ); // falsew( arr1 instanceof Array ); // true// NodeList对象也是一个类数组对象var p = document.getElementsByTagName("p");var arr2 = $.makeArray( p );
w( p instanceof Array ); // falsew( arr2 instanceof Array ); // truefunction foo(a, b){    // arguments对象也是一个类数组对象
    var arr3 = $.makeArray( arguments );
    w( arguments instanceof Array ); // false   
    w( arr3 instanceof Array ); // true}

foo(1, 2);
🎜 一般的に使用される jQuery オブジェクト、NodeList オブジェクト、引数オブジェクトも配列のようなオブジェクトです。 🎜🎜🎜🎜りー🎜 🎜🎜

以上がjQueryの.makeArray()関数の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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