如何将伪数组转换成数组
如何将伪数组转换成数组
如何将伪数组转换成数组?这里把符合以下条件的对象称为伪数组
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);
|
如何将伪数组转换成数组相关推荐
- 怎么根据css类将html转换成数组,JavaScript_js中将HTMLCollection/NodeList/伪数组转换成数组的代码,这里把符合以下条件的对象称 - phpStudy...
js中将HTMLCollection/NodeList/伪数组转换成数组的代码 这里把符合以下条件的对象称为伪数组 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等 ...
- 将类数组转换成数组的方法
类数组的概念: 类数组(ArrayLike)是指:和"数组"类似,有length属性,并且可以通过下标进行访问内部的元素且在写法上跟数组一样,但是不能直接使用数组方法.比如argu ...
- 将null转换成数组_Javscript数组快速填充数据的8种方法
前言 日常开发过程中经常会遇到模拟数据填充的问题.也就是造一些假数据,方便自己调试和开发.由此,整理了常用的数据填充的方法,在自己学习的过程中,也分享给更多开发者.一起学习,一起加油,一起精进. fi ...
- php数组转字符串 join,jQuery中将数组转换成字符串join()和push()使用
1.push()将元素依次添加至数组: 2.join()将数组转换成字符串,里面可以带参数分隔符,默认[,] $(document).on('click','.sure',function(){ va ...
- php 输出 cvs,php将数组转换成cvs格式并输出的简单示例
这篇文章主要为大家详细介绍了php将数组转换成cvs格式并输出的简单示例,具有一定的参考价值,可以用来参考一下. 对php将数组转换成cvs格式文件输出感兴趣的小伙伴,下面一起跟随512笔记的小编两巴 ...
- php处理微信返回xml数据,php将微信返回的xml格式转换成数组
废话不多说直接上代码 代码<?php header("Content-type: text/html; charset=utf-8"); date_default_timez ...
- php数组转xml文件,php数组转换成xml格式的实现方法
php数组转换成xml的方法:首先创建一个PHP示例文件:然后定义一个"array_Xml"方法:接着通过foreach循环遍历以及"is_array"等函数实 ...
- php把数组转换成对象,php怎么将数组转换成对象
echoecho() 函数输出一个或多个字符串.注释:echo() 函数实际不是一个函数,所以您不必对它使用括号.然而,如果您想要传多于一个参数给 echo(),使用括号将会生成解析错误.print ...
- 如何将PHP对象数组转换成普通数组
/** * 对象数组转为普通数组 * * AJAX提交到后台的JSON字串经decode解码后为一个对象数组, * 为此必须转为普通数组后才能进行后续处理, * 此函数支持多维数组处理. * * @p ...
最新文章
- 中值定理符号怎么读_微分、微分中值定理、泰勒公式
- 独家 | 教你实现数据集多维可视化(附代码)
- 普通(实例)方法和实例方法的定义和调用
- php 元素添加子元素,css,html_怎么在添加的子元素上继承父元素上已存在的子元素的属性?,css,html,javascript - phpStudy...
- GetLogicalDriveStrings FindFirstVolume和FindNextVolume
- JAVA基础面试中的几个问题
- 二十七、PHP框架Laravel学习笔记——模型的多对多关联
- 重新绘制TabControl的Tabpage标签,添加图片及关闭按钮
- PHP双码率视频云转码服务系统源码 m3u8切片秒切html5播放器 全开源
- TouchJSON的简单使用
- 思科智能交换机受多个严重漏洞影响
- php字符编码转换问题
- html怎么实现追加表格,jQuery实现html表格动态添加新行的方法
- Could not get unknown property 'packageForR' for task ':app:processDebugReso
- django字段类型(Field types)介绍
- 2008 r2 server sql 中文版补丁_sql2008 r2 sp1下载
- 【道高一尺,魔高一丈】Python爬虫之如何应对网站反爬虫策略
- Startup.s文件
- 前沿技术讲座感悟以及关于互联网时代前沿技术的个人理解与思考
- 弘辽科技:97年农村娃拼多多上卖大虾,带领全村人致富!
热门文章
- linux系统之我的选择
- [转】:VS 2010 : 如何开发和部署Outlook 2010插件(Add-in)
- web developer tips (74):在 Visual Studio 2008设计器里添加或移除AJAX Extenders
- Thinkphp的知识内容
- sqlserver ssms ctrl+e快捷键问题
- 8080处理器计算机启动
- Linux Kernel 3.8.8/3.4.41/3.0.74 发布
- IOS UITableView的点击展开隐藏功能的思路
- 行为类模式--策略模式
- DataList的e.Item.ItemType == ListItemType.Item判断问题