JavaScript什么是类数组?
JavaScript怎么让类数组使用上数组的方法?
- 什么是类数组?
- 类数组的组成
- 类数组的定义
- 数组丰富的内建方法有哪些?
- 如何让类数组使用上数组丰富的内建方法?
- 如果你想进一步的了解为什么可以这么做,其实可以想想filter是如何实现的。
什么是类数组?
- JavaScript 常见的类数组:arguments
- JavaScript 常见的类数组:获取Dom元素方法返回的结果(比如getElementsByTagName)
- 类数组和数组的区别与联系
数组用有丰富的内建方法供大家使用,而类数组是结构与数组十分相似(类数组相当于一个对象,key是数字,或者数字的字符串形式,并且拥有length属性)但是却没有数组那么丰富的内建方法,通常类数组可能还拥有一些别的属性。
类数组的组成
类数组是一个对象
类数组这个对象必须包含length属性
类数组中key是以数字或者数字的字符串组成。
类数组的定义
var arrLike = {0:"zhangsna",1:"lisi",2:"wangwu",3:"zhaoliu",4:"xiaoming",5:"xiaohong",length:6}console.log(arrLike)console.log("甚至可以像数组一样使用for循环")for (let i = 0;i<arrLike.length;i++){console.log(i+":",arrLike[i])}
数组丰富的内建方法有哪些?
- 控制台打印输出看下
如何让类数组使用上数组丰富的内建方法?
- 调出数组的方法
- 运用call或者apply显示绑定this的指向
例如我想通过filter方法过滤出类数组中元素包含"i"这个字符的所有元素。
可以通过如下写法进行处理。
[].filter.call(arrLike,(item)=>{return item.includes("i")})
如果你想进一步的了解为什么可以这么做,其实可以想想filter是如何实现的。
//myFilter[].__proto__.myfilter = function (callback) {let newArr = []for (let i = 0;i<this.length;i++){if (callback(this[i])){newArr.push(this[i])}}return newArr}for (let i = 0;i<arrLike.length;i++){console.log(i+":",arrLike[i])}console.log([].myfilter.call(arrLike, (item) => {return item.includes("i")}));
可以看出就是因为filter实现是通过this进行绑定的,哪个数组调用了这个filter,filter中的this就指向哪个数组。看到这里你脑海里是否有一个闭环?
JavaScript什么是类数组?相关推荐
- 深入理解JavaScript类数组
起因 写这篇博客的起因,是我在知乎上回答一个问题时,说自己在学前端时把<JavaScript高级程序设计>看了好几遍. 于是在评论区中,出现了如下的对话: 天啦噜,这话说的,宝宝感觉到的, ...
- Javascript系列(九):类数组和数组
在JavaScript中,类数组和数组是两个不同的概念,同时也是需要区分清楚的. 数组我们都了解,是JavaScript中的一个引用类型,那类数组是什么呢? 类数组和数组之间的区别 类数组拥有leng ...
- JavaScript类数组对象参考
JavaScript和DOM中有很多类数组对象,它们有以下特点 1.有length属性 2.可以使用[]通过下标访问 3.部分类数组对象使用[]访问成员时不只可以使用下标,还可以使用id或name 4 ...
- JavaScript中的经典题型(类数组、CSS Sprites、事件委托、经典去重、原型链、闭包、深浅克隆、附带思路流程和源码)
JavaScript中的经典题型 一.JavaScript中的经典题型 1..如何判断一个数组和类数组? 首先要明白什么是类数组. 类数组:类数组是一个普通对象,他的原型是Object.而真实的数组是 ...
- 重温 JavaScript 系列(2):数组去重、类数组转换数组
在牛客上看到了一些汇总文章,这里总结一下JavaScript的数组去重解决方案: 假设测试数组: var arr = [1,1,2,2,3,'true','true',true,true,15,15, ...
- 【JavaScript】类数组详解
[JavaScript]类数组详解 文章目录 [JavaScript]类数组详解 什么是类数组 类数组转换成数组 ES6 的方法转数组 callee属性 箭头函数没有arguments HTMLCol ...
- 【JavaScript】类数组对象
欢迎学习交流!!! 持续更新中- 文章目录 类数组对象 arguments 类数组对象 理解:是JS中一种特殊的对象.本质上来说对象是满足了一定条件的数组,类数组的使用目的在于使得一个对象既有数组的特 ...
- 理解javascript类数组
js数组,相比大家都很熟悉,因为走到哪都要用,但它有个"双胞胎弟弟" ,叫类数组(也叫伪数组),可能有的人了解,有的人不了解,今天我们来看一看. 什么是类数组 顾名思义,这玩意儿肯 ...
- JavaScript 的怪癖 8:“类数组对象”
原文: JavaScript quirk 8 array-like objects 译者: Malcolm Yu 此文是 javascript 的 12 个怪癖(quirks) 系列的第八篇. Jav ...
最新文章
- 将信息写入TXT文本中(java)
- 启明云推SigmaStar SSD201 双网口开发板的双网口配置说明
- 每天一道LeetCode-----将链表中满足条件的节点移动到前面
- 5-2 决策树算法预测销量高低代码
- No injector for custom defined data type的解决办法
- Python | 程序以字符串长度打印单词
- Netty Associated -- ByteBuf
- 刷新页面,无论点击多少次让Element UI的Message消息提示弹出一个
- layui基础上的tree菜单动态渲染;
- linux笔记:linux帮助命令,man,help,whatis,apropos
- Java中继承方法的使用,以及使用方法的注意事项,继承方法重写的理解,白话文详解,简单易理解
- 基于Python的QQ空间相册中的所有照片下载器
- 精益数据分析 - 第15章 阶段1:移情
- 实用工具系列 - Pycharm安装下载使用
- 计算机专业硕士在职联考,计算机在职研究生可以选择一月联考的方式吗
- python基础教程: 利用turtle库绘制笑脸和哭脸的例子
- 13.14.4 文本文件到电子表格。python编程快速上手--让繁琐工作自动化 第2版。【美】阿尔·斯维加特 Al Sweigart 著 王海鹏 译 中国工信出版集团 人民邮电出版社
- eclipse语言切换
- RTX腾讯通基本功能
- 新形黑猩猩脸部辨识系统 帮助保护朕亨公益组织及时发现网络非法交易