Maison >interface Web >js tutoriel >Explication détaillée sur l'utilisation de la fonction .makeArray() dans jQuery

Explication détaillée sur l'utilisation de la fonction .makeArray() dans jQuery

黄舟
黄舟original
2017-07-19 09:22:311493parcourir

La fonction

jQuery.makeArray() est utilisée pour convertir un objet de type tableau en un véritable objet tableau.

Le soi-disant "objet de type tableau" est un objet Object normal, mais il est très similaire à un objet tableau : il a un attribut de longueur et des nombres tels que 0, 1 , 2, 3... comme nom d'attribut.

Mais ce n'est pas un tableau après tout, et il n'y a pas de méthodes intégrées héritées de l'objet prototype du tableau (par exemple : push(), sort(), etc. .).


jQuery.makeArray( object )

Notes :

  • Un objet de type tableau, il devrait à minimum Avec l'attribut length, même si sa valeur est 0, il ne peut avoir aucun "élément" (équivalent à un tableau vide).

  • Si le paramètre object n'a pas d'attribut de longueur, ce n'est pas un objet de type tableau. jQuery.makeArray() sera traité directement comme un élément dans le tableau résultat.

  • Bien que les objets String aient un attribut de longueur, ils ne sont généralement pas considérés comme des objets de type tableau. La fonction le traite toujours directement comme un élément du tableau résultat.

  • Si le plus grand attribut numérique de l'objet est supérieur ou égal à l'attribut de longueur, l'attribut de longueur est prioritaire et les attributs numériques supérieurs ou égaux à sa valeur seront ignorés.

Valeur de retour

jQuery.makeArray()La valeur de retour de la fonction est Type tableau et renvoie l'objet tableau converti.

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

Les objets de type tableau sont très courants, tels que l'objet jQuery, l'objet NodeList et les objets arguments au sein les fonctions que nous utilisons souvent , sont toutes des objets de type tableau. Ils ont tous un attribut de longueur et les éléments ou paramètres correspondants sont accessibles via des attributs numériques. Cependant, ce ne sont pas de véritables objets tableau après tout, ils ne peuvent donc pas utiliser les méthodes intégrées de leur homologue tableau. Grâce à la fonction jQuery.makeArray(), nous pouvons convertir un objet de type tableau en un véritable objet tableau, en utilisant ainsi les méthodes intégrées de l'objet tableau.

Chestnut :


//在当前页面内追加换行标签和指定的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

Nos objets jQuery, nos objets NodeList et nos objets arguments couramment utilisés sont également des classes Objet tableau.


// 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);


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn