如何将伪数组转换成数组
来源:互联网 发布:平克弗洛伊德知乎 编辑:程序博客网 时间:2024/04/30 22:21
如何将伪数组转换成数组
如何将伪数组转换成数组?这里把符合以下条件的对象称为伪数组
1,具有length属性
2,按索引方式存储数据
3,不具有数组的push,pop等方法
如
1,function内的arguments 。
2,通过document.forms,Form.elements,Select.options,document.getElementsByName() ,document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeList)等。
3,特殊写法的对象 ,如
1
var
obj={};
2
obj[0] =
"一"
;
3
obj[1] =
"二"
;
4
obj[2] =
"三"
;
5
obj.length = 3;
它们不具有数组的一些方法如push, pop, shift, join等。有时候需要将这些伪数组转成真正的数组,这样可以使用push, pop等方法。以下是工具函数makeArray
01
function
makeArray(obj){
02
var
rs=[],len=obj.length;
03
try
{
04
rs = [].slice.call(obj,0);
05
}
catch
(e){
//for IE
06
for
(
var
i=0;j=obj[i++];){
07
rs.push(j);
08
}
09
}
10
return
rs;
11
}
以下分别测试以上三种伪数组
01
//定义一个函数fun,内部使用makeArray将其arguments转换成数组
02
function
fun(){
03
var
ary = makeArray(arguments);
04
alert(ary.constructor );
05
}
06
//调用
07
fun(3,5);
08
09
10
//假设页面上有多个段落元素p
11
var
els = document.getElementsByTagName(
"p"
);
12
var
ary1 = makeArray(els);
13
alert(ary1.constructor);
14
15
16
//特殊的js对象(如jquery对象)
17
var
obj={};
18
obj[0] =
"一"
;
19
obj[1] =
"二"
;
20
obj[2] =
"三"
;
21
obj.length = 3;
22
23
var
ary2 = makeArray(obj);
24
alert(ary2.constructor);
- 如何将伪数组转换成数组
- 将HTMLCollection/NodeList/伪数组转换成数组
- 将类数组转换成数组封装成方法
- 将字符串转换成数组
- 将字符串转换成数组
- php将xml文件转换成数组
- php将对象转换成数组
- 将js arguments对象转换成数组
- 将集合转换成数组toArray()
- mysql将字符串转换成数组
- PHP将XML转换成数组/对象
- 将json字符串转换成数组
- 将arguments转换成数组的方法
- c#将json串转换成数组
- 将argruments对象转换成数组
- xml转换为json格式时,如何将指定节点转换成数组
- PHP将对象转换成数组的方法(兼容多维数组类型)
- JS 中如何将字符串转换成数字
- 听高长寿敲代码
- jquery与ajax
- 程序江湖:第十五章 热衷传销的团队
- vmware serial port连接
- API Demos 2.3 学习笔记 (3)-- Android应用程序架构
- 如何将伪数组转换成数组
- The Xbox 360 reset glitch hack
- Java中WeakReference、WeakHashMap、SoftReference、ReferenceQueue的作用和使用场景
- 08-27~29 HDU1010 USACO4.3~4.4 搜索剪枝,模拟,拓扑,网络流
- 用BOOTICE工具创建U盘隐藏分区制作PE启动盘(
- jquery的插件
- Lua情节链设计2
- 帝国时代,罗马复兴【基址+偏移】
- 关于erphp框架的使用说明