博客
关于我
js 伪数组
阅读量:778 次
发布时间:2019-03-24

本文共 1531 字,大约阅读时间需要 5 分钟。

伪数组的定义

伪数组(类数组)类似于数组,具有索引和length属性,但不具备数组方法(如push、shift、map等)。这种对象被称为伪数组,因为它虽然看起来像数组,但实际上并不是原生数组。

伪数组的范例

伪数组可以通过以下形式创建: ```javascript let fakeArray = { length: 3, "0": "first", "1": "second", "2": "third" }; ``` 此外,以下类型的对象也被视为伪数组: ```javascript var obj3 = { length: 0 }; var obj4 = { 0: '888', length: 1 }; var obj5 = { 99: 'abc', length: 100 }; ```

伪数组的特点

1. 伪数组不具备数组的特性: ```javascript fakeArray instanceof Array === false; Object.prototype.toString.call(fakeArray) === "[object Object]"; Array.isArray(fakeArray) === false; ```2. 伪数组不一定有连续的索引: ```javascript let arr = [1,2,3,4,6]; arr instanceof Array === true; Object.prototype.toString.call(arr) === "[object Array]"; Array.isArray(arr) === true; ```

伪数组的常见应用

伪数组常见于以下场景: 1. 函数参数列表: ```javascript function test(data, ...args) { ... } ```2. DOM 对象列表: ```javascript let divElements = document.getElementsByTagName('div'); ```

如何判断是否为伪数组

可以使用以下方法进行判断: ```javascript // 通过 lodash的_.isArrayLike方法 _.isArrayLike([1, 2, 3]); // => true _.isArrayLike(document.body.children); // => true _.isArrayLike('abc'); // => true _.isArrayLike(_.noop); // => false ```

伪数组与真数组的转换

若需要将伪数组转换为真数组,可以使用以下方法: 1. **方式一:使用 ES6 Array.from()** ```javascript let realArr = Array.from(fakeArr); ```2. **方式二:使用 Array.prototype.slice.call()** ```javascript let realArr = Array.prototype.slice.call(fakeArr); ```3. **方式三:手动创建数组** ```javascript let realArr = []; for (let i = 0; i < fakeArray.length; i++) { realArr.push(fakeArray[i]); } ```

总结

伪数组与真数组在特性上的主要区别在于是否是原生数组类型。通过上述方法,我们可以轻松地将伪数组转换为真数组,从而更好地进行数组操作。

转载地址:http://qrmkk.baihongyu.com/

你可能感兴趣的文章
pkl来存储python字典
查看>>
quick sort | 快速排序 C++ 实现
查看>>
pkpmbs 建设工程质量监督系统 Ajax_operaFile.aspx 文件读取漏洞复现
查看>>
pkpmbs 建设工程质量监督系统 文件上传漏洞复现
查看>>
pku 2400 Supervisor, Supervisee KM求最小权匹配+DFS回溯解集
查看>>
queue队列、deque双端队列和priority_queue优先队列
查看>>
PKUSC2018游记
查看>>
PK项目测试,做产品测试有这4大优势!
查看>>
pl sql 的目录 所在的目录 不能有 小括号,如 Program Files (x86)
查看>>
PL SQLDEVELOPMENT导出数据库脚本
查看>>
Queue
查看>>
PL/SQL Developer中文版下载以及使用图解(绿色版)
查看>>
pl/sql developer乱码,日期格式等问题解决
查看>>
PL/SQL 中的if elsif 练习
查看>>
PL/SQL 存储函数和过程
查看>>
query简单入门到精通细节 - (六)Jquery效果之“淡入与淡出”
查看>>
PL/SQL提示“ORA-01722:无效数字,将无效数字查找出来
查看>>
PL/sql语法单元
查看>>
PL/SQL连接远程服务器数据库,出现ORA-12154: TNS: 无法解析指定的连接标识符。
查看>>
pl/sql锁
查看>>