js将伪数组或者集合转换为数组
在javascript中,有很多对象或者数组非常类似于数组。
比如arguments对象或者使用getElementsByTagName()方法获取的元素集合。
但是这些对象或者集合并不能够使用array数组的方法,比如push方法或者其他方法。
所以为了操作方便,我们可以将它们转换为数组,下面就做一下简单介绍。
一.针对arguments对象:
function func(a,b,c,d){
var num=a+b+c+d;
var arr=Array.prototype.slice.call(arguments,1,3);
return arr;
}
console.log(func(1,2,3,4));
(1).prototype可以参阅javascript prototype一章节。
(2).slice()方法可以参阅javascript Array slice()一章节。
(3).call()可以参阅js call()一章节。
(4).arguments可以参阅javascript arguments一章节。
二.针对元素集合:
上面的方式针对元素集合具有一定的浏览器兼容性问题。
对于低版本的IE浏览器无效,不过我们可以进行一下转换,代码片段:
function realArray(NodeList) {
try {
return Array.prototype.slice.call(NodeList);
}
catch (e) {
var ret = [], i = 0, len = NodeList.length;
for (; i < len; i++) {
ret[i] = (NodeList[i]);
}
return ret;
}
}
相关推荐
-
javascript为什么字符串直接量可以使用属性和方法
在分析标题中的问题之前先来看一段代码实例:vr str=实例3;consol.log(str.lngth);如果不深究,那么上面的代码实在是太普通不过了,但是细致看来,可能有不少朋友有
-
js将数组转换成CSV格式的方法简单介绍
本章节介绍一下如何将数组转换为csv格式,需要的朋友可以做一下参考。关于什么是csc格式可以自行在网上查询,非常的简单也很好理解。jvScrit中数组对象的vluOf方法可以将数组的值输出为
-
js使用yield模拟多线程的方法简单介绍
在ython和C#中都有yild方法,通过yild可以实现很多多线程才能实现的功能。jvscrit有版本要求:JvScrit 1.7function Thrd( nm ) {
-
javascript删除指定索引的数组代码实例
本章节分享一段代码实例,它实现能够删除数组指定索引的元素的效果。代码实例:function RmovVlByIndx(rr,indx){ rr.slic(indx,1);}vr
-
js将一个数组追加到原数组中
可能不少朋友认为使用rry对象的conct()方法即可轻松实现。真的是这样的,看如下代码实例:vr = [4,5,6];vr b = [7,8,9];vr c=.conct(b)