最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

jQuery中关于.makeArray()函数的使用详解

来源:动视网 责编:小采 时间:2020-11-27 20:16:01
文档

jQuery中关于.makeArray()函数的使用详解

jQuery中关于.makeArray()函数的使用详解:jQuery.makeArray()函数用于将一个类数组对象转换为真正的数组对象。所谓"类数组对象"就是一个常规的Object对象,但它和数组对象非常相似:具备length属性,并以0、1、2、3……等数字作为属性名。不过它毕竟不是数组,没有从数组的原型对象上继承下
推荐度:
导读jQuery中关于.makeArray()函数的使用详解:jQuery.makeArray()函数用于将一个类数组对象转换为真正的数组对象。所谓"类数组对象"就是一个常规的Object对象,但它和数组对象非常相似:具备length属性,并以0、1、2、3……等数字作为属性名。不过它毕竟不是数组,没有从数组的原型对象上继承下


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()函数,我们可以将类数组对象转换为一个真正的数组对象,从而使用数组对象的内置方法。

    栗子:

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

    我们常用的jQuery对象、NodeList对象、arguments对象也都是类数组对象。

    // 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中关于.makeArray()函数的使用详解

    jQuery中关于.makeArray()函数的使用详解:jQuery.makeArray()函数用于将一个类数组对象转换为真正的数组对象。所谓"类数组对象"就是一个常规的Object对象,但它和数组对象非常相似:具备length属性,并以0、1、2、3……等数字作为属性名。不过它毕竟不是数组,没有从数组的原型对象上继承下
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top