如何将伪数组转换成数组

如何将伪数组转换成数组?这里把符合以下条件的对象称为伪数组
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);

如何将伪数组转换成数组相关推荐

  1. 怎么根据css类将html转换成数组,JavaScript_js中将HTMLCollection/NodeList/伪数组转换成数组的代码,这里把符合以下条件的对象称 - phpStudy...

    js中将HTMLCollection/NodeList/伪数组转换成数组的代码 这里把符合以下条件的对象称为伪数组 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等 ...

  2. 将类数组转换成数组的方法

    类数组的概念: 类数组(ArrayLike)是指:和"数组"类似,有length属性,并且可以通过下标进行访问内部的元素且在写法上跟数组一样,但是不能直接使用数组方法.比如argu ...

  3. 将null转换成数组_Javscript数组快速填充数据的8种方法

    前言 日常开发过程中经常会遇到模拟数据填充的问题.也就是造一些假数据,方便自己调试和开发.由此,整理了常用的数据填充的方法,在自己学习的过程中,也分享给更多开发者.一起学习,一起加油,一起精进. fi ...

  4. php数组转字符串 join,jQuery中将数组转换成字符串join()和push()使用

    1.push()将元素依次添加至数组: 2.join()将数组转换成字符串,里面可以带参数分隔符,默认[,] $(document).on('click','.sure',function(){ va ...

  5. php 输出 cvs,php将数组转换成cvs格式并输出的简单示例

    这篇文章主要为大家详细介绍了php将数组转换成cvs格式并输出的简单示例,具有一定的参考价值,可以用来参考一下. 对php将数组转换成cvs格式文件输出感兴趣的小伙伴,下面一起跟随512笔记的小编两巴 ...

  6. php处理微信返回xml数据,php将微信返回的xml格式转换成数组

    废话不多说直接上代码 代码<?php header("Content-type: text/html; charset=utf-8"); date_default_timez ...

  7. php数组转xml文件,php数组转换成xml格式的实现方法

    php数组转换成xml的方法:首先创建一个PHP示例文件:然后定义一个"array_Xml"方法:接着通过foreach循环遍历以及"is_array"等函数实 ...

  8. php把数组转换成对象,php怎么将数组转换成对象

    echoecho() 函数输出一个或多个字符串.注释:echo() 函数实际不是一个函数,所以您不必对它使用括号.然而,如果您想要传多于一个参数给 echo(),使用括号将会生成解析错误.print ...

  9. 如何将PHP对象数组转换成普通数组

    /** * 对象数组转为普通数组 * * AJAX提交到后台的JSON字串经decode解码后为一个对象数组, * 为此必须转为普通数组后才能进行后续处理, * 此函数支持多维数组处理. * * @p ...

最新文章

  1. 中值定理符号怎么读_微分、微分中值定理、泰勒公式
  2. 独家 | 教你实现数据集多维可视化(附代码)
  3. 普通(实例)方法和实例方法的定义和调用
  4. php 元素添加子元素,css,html_怎么在添加的子元素上继承父元素上已存在的子元素的属性?,css,html,javascript - phpStudy...
  5. GetLogicalDriveStrings FindFirstVolume和FindNextVolume
  6. JAVA基础面试中的几个问题
  7. 二十七、PHP框架Laravel学习笔记——模型的多对多关联
  8. 重新绘制TabControl的Tabpage标签,添加图片及关闭按钮
  9. PHP双码率视频云转码服务系统源码 m3u8切片秒切html5播放器 全开源
  10. TouchJSON的简单使用
  11. 思科智能交换机受多个严重漏洞影响
  12. php字符编码转换问题
  13. html怎么实现追加表格,jQuery实现html表格动态添加新行的方法
  14. Could not get unknown property 'packageForR' for task ':app:processDebugReso
  15. django字段类型(Field types)介绍
  16. 2008 r2 server sql 中文版补丁_sql2008 r2 sp1下载
  17. 【道高一尺,魔高一丈】Python爬虫之如何应对网站反爬虫策略
  18. Startup.s文件
  19. 前沿技术讲座感悟以及关于互联网时代前沿技术的个人理解与思考
  20. 弘辽科技:97年农村娃拼多多上卖大虾,带领全村人致富!

热门文章

  1. linux系统之我的选择
  2. [转】:VS 2010 : 如何开发和部署Outlook 2010插件(Add-in)
  3. web developer tips (74):在 Visual Studio 2008设计器里添加或移除AJAX Extenders
  4. Thinkphp的知识内容
  5. sqlserver ssms ctrl+e快捷键问题
  6. 8080处理器计算机启动
  7. Linux Kernel 3.8.8/3.4.41/3.0.74 发布
  8. IOS UITableView的点击展开隐藏功能的思路
  9. 行为类模式--策略模式
  10. DataList的e.Item.ItemType == ListItemType.Item判断问题