在 jQuery 中,我们可以使用
图 1:将 arguments 转化为 Array
图 2:将 nodeList 转化为 Array 的效果
$.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 所示。
图 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 所示。
图 2:将 nodeList 转化为 Array 的效果
将 nodeList 转换为 Array 这种方式非常好用,特别是对一组节点进行同一操作的时候。像上面这个例子,小伙伴们想一下,如果使用原生 JavaScript 语法该怎么实现(提示:ES6 提供了 Array.from() 方法)。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/23909.html