js中伪数组(也叫类数组)
1. 伪数组的特点:
* Object对象
* length属性
* 数值下标属性
* 没有数组特别的方法: forEach(), push(), pop(), splice()
// 自定义一个伪数组
<script><script>var weiArr = {}weiArr.length = 0weiArr[0] = "zjw"weiArr.length = 1weiArr[1] = "after"weiArr.length = 2for (var i = 0; i < weiArr.length; i++) {var obj = weiArr[i]console.log(i, obj)}//伪数组是一个 Object,而真实的数组是一个 Arrayconsole.log(weiArr instanceof Array ) //falseconsole.log(weiArr instanceof Object ) //trueconsole.log(weiArr.forEach,weiArr.push) //undefined undefined</script></script>
2.判断一个对象是否属于“伪数组”
2.1用Array.isArray
Array.isArray(weiArray) === false;
Array.isArray(arr) === true;
2.2用instanof
console.log(weiArrayinstanceof Array)//falseconsole.log(arr instanceof Array)//true
3.常见的伪数组
1.jQuery 对象(比如 $(“div”) )
2.函数内部的 arguments
3.DOM 对象列表(比如通过 document.getElementsByTags ,document.childNodes返回的NodeList对象)
4.伪数组存在的意义
伪数组存在的意义,是可以让普通的对象也能正常使用数组的很多方法(push和forEach等)
<script>function fun(x,y){// arguments.push(3) Uncaught TypeError: arguments.push is not a functionArray.prototype.push.call(arguments,3)console.log(arguments)}fun(1,2)</script>
5.将伪数组转换为数组
可以使用Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象
<script>function fun(x,y){const newarguments= Array.prototype.slice.call(arguments)console.log(newarguments)console.log(newarguments instanceof Array)//trueconsole.log(Array.isArray(newarguments))//true}fun(1,2)</script>
js中伪数组(也叫类数组)相关推荐
- js 伪数组(类数组)与数组的区别
js 数组和类数组的区别 类数组定义 1)拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理): 2)不具有数组所具有的方法: javascript中常见的 ...
- js中的字符串方法与数组方法总结
js中的字符串方法与数组方法总结 1.字符串方法 2.数组方法
- JS中根据指定值删除数组中的元素
JS中根据指定值删除数组中的元素 原生js 如果想删除数组,有一个函数 splice() ~~ 删除元素,并向数组添加新元素. splice是根据数组内的下标 也就是索引来 删除元素的比如: var ...
- JS中定义一个二维数组
JS中定义一个二维数组 方法一 var _TheArray = [["0-1","0-2"],["1-1","1-2"] ...
- 数组与类数组以及在类数组对象使用数组的方法
如何在类数组中使用数组的方法? 这里记点笔记,仅供学习参考. 文章目录 判定数组 1. Array.isArray( ) 2. instanceof 操作符 3. 检测类属性 数组 类数组 类数组对象 ...
- 【译】JS基础算法脚本:类数组(arguments)去重
需求 给出一个类数组,删除要求的重复数据,返回新数组 destroyer([1, 2, 3, 1, 2, 3], 2, 3) should return [1, 1] destroyer([2, 3, ...
- js数组获取index_通过事例重温一下 JS 中 常见的15 种数组操作(备忘清单),收藏...
数组是 JS 中广泛使用的数据结构.数组对象提供了大量有用的方法,如array. forEach().array.map()等来操作数组. 在实战中,我经常对数组可能的操作和相应采用哪个更好的方法不知 ...
- js 数组和类数组的区别
类数组定义 1)拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理): 2)不具有数组所具有的方法: javascript中常见的类数组有 argument ...
- JS 中判断一个对象是否为数组对象?
在面向对象中 判断一个对象中 判断一个对象是否为数组 1 可以查找它的原型 (__proto__) 是否为数组对象的原型对象 var arr1 = [1,2,3];console.log(arr1._ ...
- js中不会影响原数组的方法
1:concat() 该方法可以连接两个或多个数组,并将新的数组返回.不会对原数组产生影响 2:join() 该方法可以将数组转换为一个字符串 该方法不会对原数组产生影响,而是将转换后的字符串作为结果 ...
最新文章
- AaronYang WCF教程目录
- 华为鸿蒙系统发展时间2021年,耗时八年打造国产系统,华为鸿蒙OS质疑声不断,它才是真正未来...
- read一个收到RST的socket会返回0?
- python如何打开图片_python如何处理图片
- 微博股市直播实时监控提醒
- wps表格的宏被禁用问题
- win10怎么获得计算机权限,Win10如何获取TrustedInstaller超级权限?
- Win10家庭中文版如何添加本地用户
- NBUT 1451 Elise (暴力+并查集)
- HBuilder js,css压缩,增强代码的安全性
- Android 自定义底部上拉控件的实现
- Dubbo源码分析:全集整理
- 华为云计算之rainbow迁移实验
- 如何处理在WINDOWS VISTA上安装VS2008时遇到要求安装WINDOWS XP SP2的错误和QQ对战平台安装后不能登录的问题
- android 5.0小米1刷机包,小米1刷机包 V5稳定版V1.2 流畅纯净 精简省电 默认开启未知来源 Android4.1.2...
- ps命令,top命令,pstree命令,缓存和缓冲的区别
- 电控无碳小车需要单片机吗_智能避障无碳小车-精选文档
- 如何维护网站?公司网站怎么维护?
- RationalDMIS Baces3D 关节臂测量使用说明
- 2022国赛c题省一论文latex