• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • jQuery.makeArray()

    转换一个类似数组的对象成为真正的JavaScript数组。

    jQuery.makeArray(obj)
    • obj类型: PlainObject。转换成一个原生数组的任何对象。

    一般来说,无论是在jQuery和JavaScript中很多方法都返回类似数组的对象。举例来说,jQuery的代理函数$()返回一个jQuery对象具有许多的数组的属性。(length,[]数组访问运算符等),但和数组并不完全一样,缺少一些对数组的内置方法(如.pop().reverse())。

    请注意,转换后,任何有特殊功能的对象(如在我们的例子中jQuery方法)将不再存在。现在的对象是一个普通的数组。

    例子

    将一个 HTMLElements 集合转换成对应的数组。

    <!DOCTYPE html>
    <html>
    <head>
      <style>
      div { color:red; }
      </style>
      <script src="https://www.lanmper.cn/static/js/jquery-3.5.0.js"></script>
    </head>
    <body>
      <div>First</div>
      <div>Second</div>
      <div>Third</div>
     
      <div>Fourth</div>
    <script>
        var elems = document.getElementsByTagName("div"); // returns a nodeList
        var arr = jQuery.makeArray(elems);
        arr.reverse(); // use an Array method on list of dom elements
        $(arr).appendTo(document.body);
    </script>
     
    </body>
    </html>
    
    First
    Second
    Third
    Fourth

    将一个 jQuery 对象转换成一个数组。

        var obj = $('li');
        var arr = $.makeArray(obj);
    

    Result:

    (typeof obj === 'object' && obj.jquery) === true;
    jQuery.isArray(arr) === true;
    

    上篇:jQuery.map()

    下篇:jQuery.globalEval()