这里把符合以下条件的对象称为伪数组:
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,特殊写法的对象
,如
var obj={};
obj[0] = "一";
obj[1] = "二";
obj[2] = "三";
obj.length = 3;
它们不具有数组的一些方法如push, pop, shift, join等。有时候需要将这些伪数组转成真正的数组,这样可以使用push, pop等方法。以下是工具函数makeArray
function makeArray(obj){
var rs=[],len=obj.length;
try{
rs = [].slice.call(obj,0);
}catch(e){//for IE
for(var i=0;j=obj[i++];){
rs.push(j);
}
}
return rs;
}
以下分别测试以上三种伪数组:
//定义一个函数fun,内部使用makeArray将其arguments转换成数组
function fun(){
var ary = makeArray(arguments);
alert(ary.constructor );
}
//调用
fun(3,5);
//假设页面上有多个段落元素p
var els = document.getElementsByTagName("p");
var ary1 = makeArray(els);
alert(ary1.constructor);
//特殊的js对象(如jquery对象)
var obj={};
obj[0] = "一";
obj[1] = "二";
obj[2] = "三";
obj.length = 3;
var ary2 = makeArray(obj);
alert(ary2.constructor);
分享到:
相关推荐
在ES6之前,将伪数组转换为数组通常采用两种方法: 1. 遍历方法:通过循环将伪数组的每个元素添加到新数组中。 ```javascript function makeArray(arrayLike) { let result = []; for (let i = 0, len = ...
在JavaScript中,我们经常会遇到需要将HTMLCollection、NodeList或者伪数组(也就是通常所说的类数组对象)转换成真正的数组的情况。类数组对象并不是真正的数组类型,它们通常是函数的参数对象(比如arguments对象...
通过本文的介绍,我们可以看到将`HTMLCollection`、`NodeList`以及其他伪数组转换为真数组的方法是多样的。选择合适的方法取决于具体的使用场景和目标浏览器的支持情况。对于现代Web应用来说,推荐使用`Array.from()...
这里把符合以下条件的对象称为伪数组 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments 。 2,通过document.forms,Form.elements,Select.options,document....
总的来说,理解伪数组的概念、如何识别和处理伪数组,以及如何将其转换为真正的数组是JavaScript编程中非常实用的技能,特别是在处理函数参数和DOM操作时尤为重要。掌握这些知识点对于编写高效、健壮的JavaScript...
图片转换软件将.jpg,.bmp等各种格式的图片转换成真彩、伪彩、单色等多种扫描方式的数据文件,保存成数组格式,直接可以作为应用程序进行调用。唯一的缺点就是会在图片中加入应用权限字符。 这两款软件在我开发的...
文章最后提及了两个自定义函数jqObjToArray和ArrayToJqObj,这两个函数可以帮助我们将jQuery对象转换成数组,以及将数组转换回jQuery对象。这些转换在处理原生DOM集合和jQuery对象之间转换时非常有用。 - **...
在遍历数组时,如果遇到的是字符串类型,需要先将字符串转换成数组,即通过split方法将字符串转换为数组。在遍历对象时,使用for-in循环来遍历属性,同时使用hasOwnProperty方法来排除继承的属性。此外,这个自定义...
`Array.of`方法则用于将一组值转换成数组,它解决了`Array`构造函数因参数不同而导致的行为差异问题。例如: ```javascript let allLi = document.querySelectorAll('li'); let arr = Array.from(allLi); console....
- **Array.from(A)**:可以将类数组对象或可迭代对象转换成数组。 - **[].slice.apply(A)**:利用数组的`slice`方法,通过`.apply`方法将类数组对象转化为数组。 - **[…A]**:使用扩展运算符将可迭代对象转化为数组...
// 将参数字符串分割成数组 $Php2Html_UrlQueryStrList = explode("@", $Php2Html_UrlString); print_r($Php2Html_UrlQueryStrList); // 输出参数数组 // 遍历参数数组,设置GET变量 foreach ($...
• sample31.htm 将字符串分割成数组 • sample32.htm 转换大小写 • sample33.htm 与HTML相关的方法 • sample34.htm 字符串比较 • sample35.htm 修改字符串中的某一个...
- 将处理后的路径分割成数组,以便进一步处理。 2. **构建新的查询字符串**: - 遍历数组并将元素作为键值对加入到新的查询字符串中。 - 例如,对于URL `/test.php/year/2006/action/_add.html`,将`$_GET['year...
2. **哈希函数**:哈希函数是哈希表的核心,负责将键转换成数组索引。在实验中,使用了除留余数法来构建哈希函数,即`Hash(int key) = key % P`,这里的P是一个随机数值,用于减少冲突概率。 3. **处理冲突**:由于...
1. **WEB标准与W3C的理解**:Web标准是一种规范,旨在确保网页在所有浏览器中的一致性和可访问性。W3C(World Wide Web ...3. **split()与join()**:split()将字符串分割成数组,join()将数组元素组合回字符串。