面试的时候遇到这个问题,在jquery中如何实现的将argements或者getElementsByTagName这种
类数组转换为真正的数组?
查了API,jQuery.makeArray( obj ) 转换后,任何有特殊功能的对象将不再存在,而变成是一个普通的数组对象。
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
//这样domNodes就可以应用Array下的所有方法了
makeArray: function( a ) {
var r = [];
// Need to use typeof to fight Safari childNodes crashes
if ( typeof a != "array" )
for ( var i = 0, al = a.length; i < al; i++ )
r.push( a[i] );
else
r = a.slice( 0 );
return r;
}
makeArray: function( arr, results ) {
var ret = results || [];
if ( arr != null ) {
if ( isArraylike( Object(arr) ) ) {
jQuery.merge( ret,
typeof arr === "string" ?
[ arr ] : arr
);
} else {
core_push.call( ret, arr );
}
}
return ret;
}
<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(); //此时arr为转换后的数组,可以正常使用数组的反转方法
$(arr).appendTo(document.body);
</script>
分享到:
相关推荐
本文实例分析了JavaScript类数组对象转换为数组对象的方法。分享给大家供大家参考,具体如下: 1、类数组对象: 拥有length属性,可以通过下标访问; 不具有数组所具有的方法。 2、为什么要将类数组对象转换为数组...
这个对象并不是数组类型,那有没有办法把它转换为数组类型呢?jQuery代码中采用了Array.prototype.slice把这种对象转换为数组,但我试了好几遍,就是不行: 代码如下: var obj = {}; obj[0] = 1; obj[1] = 2; alert...
javascript与dom有许多瑕疵,如著名的类数组对象Arguments,其他诸如HTMLCollection,NodeList如果它们都是数组的子类,那多省时啊。
将List转换为数组 将数组转换为Dictionary 将Dictionary 转换为数组 将List转换为Dictionary 将Dictionary转换为List 首先这里定义了一个“Student”的类,它有三个自动实现属性。 class Student { public ...
注意:源程序是为qt写的,不过基本上都用的是c语言,下载之后稍作修改就可以在vc++上运行。将int数组转成uchar数组保存到数据库,然后再取出来将uchar数组还原成int数组。
LabVIEW程序,功能:将4字节的unsigned char输入组合成1个32-bit int值,若输入字节数不等于4则报错。
字符串转换为数组的4 个方法.pdf 字符串转换为数组的4 个方法.pdf 字符串转换为数组的4 个方法.pdf 字符串转换为数组的4 个方法.pdf 字符串转换为数组的4 个方法.pdf 字符串转换为数组的4 个方法.pdf 字符串转换为数...
(c#)字符串转换成字符数组 字符串转换成int 数组
本文通过一个编程实例解析了c语言中数组访问机制及强制转换操作。
C++通过二维数组的方法将其转换成矩阵,自己想的,谢谢!
Unity3D教程:Array数组类的使用(一) Posted on 2013年07月25日 by U3d / Unity3D 基础教程 /被围观 69 次 U
将汉字转换成数组,便于开发人员开发时用点阵液晶显示文字
bin文件转换为数组 详细说明在下面的博客 https://xintiaobao.blog.csdn.net/article/details/113057874
将字符串转化为数组,资源为pb9导出来的文本文件,可以直接导入pb9,也可以打开查看
本文实例讲述了ES6新特性之数组、Math和扩展操作符用法。分享给大家供大家参考,具体如下: ...//in ES6中 类数组转换为数组的方法 let itemElements=document.querySelectorAll('.item'); let items=A
js对象根据下标变成数组
音频文件数组转成c语言的数组音频文件数组转成c语言的数组音频文件数组转成c语言的数组音频文件数组转成c语言的数组音频文件数组转成c语言的数组音频文件数组转成c语言的数组音频文件数组转成c语言的数组
可方便的将文件转换为数组,或者将数组还原成文件 嵌入式编程中资源转换会经常用到,例如mp3 ,midi,或bin转数组,或将数组换回成文件
用法:new = struct2struct(old) 如果 'old' 是一个包含数组的标量结构(每个具有相同的行数,N),那么 'new' 将是一个 N×1 结构数组,其字段... struct-array 使使用计算的索引/指标应用过滤和排序操作变得更容易。