博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对象遍历
阅读量:5052 次
发布时间:2019-06-12

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

在数组中常用的遍历方法有for for in for of这三种,前两种是遍历数组的下标,然后再通过数组下标来访问数组的元素。其实对象意识相似的。

让我们来看一下数组以及对象的代码表示。

// Array    let arr = ["bob", "18", "man"];    // Object    let obj = {        name: "bob",        age: "18",        sex: "man"    }

可以看到他们其实都是一组数据的集合,并且都是一组数据的集合,且不同元素之间都是使用逗号进行分割,唯一的区别就只是对象是使用花括号包裹着的,然后数组是使用 方括号包裹着的,再就是对象是通过属性名(字符串)进行访问,而对象是通过数组下标(数字)来进行访问的。然而还有一点就是一般我们访问对象属性的方式都是通过object.property然而实际上在javascript中会被转换成为object["property"],所以我们是不是可以这么理解,所谓对象,实际上就上一种特殊的数组。

恩,接下里在继续谈到数组的遍历问题。
实际上对于数组的遍历也可以使用for in for of这两种方法,前者嘛就是通过访问对象的属性名然后来遍历对象,但是这有一种缺陷,就是对于对象的原型他会一直访问下去,一直到object.prototype也就是一直到对象原型的终点。
当然一般我们是不希望他遍历对象的原型的,我们只希望遍历这个对象本身具有的属性,所以这是后就要用到了object的hasOwnProperty方法,任何的对象都会从原型链上继承这个方法,但是这个方法时不受到JavaScript保护的。

所有继承了 Object 的对象都会继承到 hasOwnProperty方法。这个方法可以用来检测一个对象是否含有特定的自身属性;和 in运算符不同,该方法会忽略掉那些从原型链上继承到的属性。

这是MDN对这个方法的描述,具体可见

可以使用这个方法来过滤原型链上的属性,这是很实用的。

转载于:https://www.cnblogs.com/freesfu/p/10091041.html

你可能感兴趣的文章
【BZOJ4487】[JSOI2015] 染色问题(高维容斥)
查看>>
Ubuntu 环境变量
查看>>
一步一步学MySQL-日志文件
查看>>
bzoj3994: [SDOI2015]约数个数和
查看>>
hdu5306 Gorgeous Sequence
查看>>
Android中使用ListView实现下拉刷新和上拉加载功能
查看>>
proc文件系统的简介
查看>>
连续自然数和
查看>>
[SDOI2015]星际战争
查看>>
用好lua+unity,让性能飞起来——luajit集成篇/平台相关篇
查看>>
JS控制页面跳转
查看>>
Ubuntu PPA软件源
查看>>
Window 2003 IIS + MySQL + PHP + Zend 环境配置
查看>>
Mysql集合笔记
查看>>
HTTPS与SSL数字证书的必要性
查看>>
react之项目目录
查看>>
wamp自定义网站根目录及多站点配置
查看>>
GPT转MBR完整图文教程
查看>>
转载:《TypeScript 中文入门教程》 6、命名空间
查看>>
友情链接
查看>>