首页 > 编程笔记 > Web笔记

jQuery $.makeArray()方法的用法

在 jQuery 中,我们可以使用$.makeArray()方法将“类数组对象”转换为真正的数组。那什么叫“类数组对象”呢?“类数组对象”必须有 length 属性,例如 arguments、nodeList 等。

语法:

$.makeArray(obj)

$.makeArray()方法的返回值是一个数组。如果参数 obj 不是类数组对象,则返回值是一个空数组。

举例:将 arguments 转化为 Array
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        function test() {
            var arr = $.makeArray(arguments);
            console.log(arr);
        }
        test("yes",1,{});      // ["yes", 1, Object]
    </script>
</head>
<body>
</body>
</html>
控制台输出结果如图 1 所示。
将arguments转化为Array
图 1:将 arguments 转化为 Array

可能很多人就会问了,为什么要将 arguments、nodeList 这些类数组对象转换为真正的数组呢?因为转换为真正的数组后,我们就可以调用数组的各种方法来操作这些对象。

举例:将 nodeList 转换为 Array
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var arr = $.makeArray($("li"));
            $("ul").html(arr.reverse());
        })
    </script>
</head>
<body>
    <ul>
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
        <li>jQuery</li>
        <li>Vue.js</li>
    </ul>
</body>
</html>
预览效果如图 2 所示。
将nodeList转化为Array的效果
图 2:将 nodeList 转化为 Array 的效果

将 nodeList 转换为 Array 这种方式非常好用,特别是对一组节点进行同一操作的时候。像上面这个例子,小伙伴们想一下,如果使用原生 JavaScript 语法该怎么实现(提示:ES6 提供了 Array.from() 方法)。

所有教程

优秀文章