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",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() 方法)。

相关文章

问题背景 最近小伙伴提了一个希望提高后台下拉列表可操作性的...
// n位随机数生成 function randomNum(n) { let sString = &...
HTML是HyperText Markup Language的简称,中文名称:超文本标...
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现...
JavaScript 是脚本语言,是一种解释性脚本语言(代码不进行预...
本文由葡萄城技术团队原创并首发 转载请注明出处:葡萄城官网...