对象的遍历方法
第一种 for…in
循环遍历对象自身属性和继承的可枚举属性
代码如下
<script>let obj = { 0: "a", 1: "b", 3: "c" };for (let key in obj) {console.log(key, ":", obj[key]);// 0 : a// 1 : b// 3 : c}</script>
第二种 Object.keys()
返回一个数组,包含对象自身可枚举属性(不包含继承)
代码如下
<script>let obj = { 0: "a", 1: "b", 3: "c" };let obj1 = Object.keys(obj);// obj1=["0", "1", "3"]obj1.forEach((key) => {console.log(key, obj[key]);// 0 a// 1 b// 3 c});</script>
第三种 Object.getOwnPropertyNames(obj)
返回一个数组,包含对象自身所有属性(包括不可枚举属性)
代码如下
<script>let obj = { 0: "a", 1: "b", 3: "c" };let obj2 = Object.getOwnPropertyNames(obj);console.log(obj2);// obj2=["0", "1", "3"]obj2.forEach(function (key) {console.log(key, obj[key]);// 0 a// 1 b// 3 c});</script>
第四种 Reflect.ownKeys(obj)
返回一个数字,包含对象自身的所有属性(不管属性名是Symbol或字符串,也不管是否可枚举.)
特别说明
1.Symbol:ES6新增了一种数据类型:Symbol,表示独一无二的值,Symbol最大的用途是用来定义对象的唯一属性名
2.关于枚举:在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
