1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > JS 对象和数组的遍历方法

JS 对象和数组的遍历方法

时间:2021-03-17 16:08:22

相关推荐

JS 对象和数组的遍历方法

目录

一、JS 遍历数组

1、for 循环遍历数组

2、使用for ……in 遍历数组

3、for……of 遍历数组

4、forEach 遍历数组

5、map遍历数组

二、JS 遍历对象

1、for……in 循环遍历对象

2、Object.keys 遍历对象

3、Object.getOwnPropertyNames(obj) 遍历对象

一、JS 遍历数组

1、for 循环遍历数组

// 1、for循环let arr = ['d', 'a', 'w', 'n'];for (let i = 0; i < arr.length; i++){console.log(arr[i]);}

这种直接使用for循环的方法是最普遍的遍历数组和对象的方法;

2、使用for ……in 遍历数组

//2、for……in 循环let arr = ['d', 'a', 'w', 'n'];for (let key in arr) {console.log(arr[key]);}

3、for……of 遍历数组

//3、for……of 遍历数组let arr = ['d', 'a', 'w', 'n'];for (let value of arr) {console.log(value);}

es6新出的方法,for…of ,值得注意的是,for…of 和 for…in不一样,for…in是直接获取数组的索引,而for…of是直接获取的数组的值

ES6里引入了一种遍历器(Iterator)机制,为不同的数据结构提供统一的访问机制。只要部署了Iterator的数据结构都可以使用 for ··· of ··· 完成遍历操作

它既比传统的for循环简洁,同时弥补了forEach和for-in循环的短板。

循环遍历键值对的value,与for in遍历key相反

4、forEach 遍历数组

//4、forEach遍历数组let arr = ['d', 'a', 'w', 'n'];arr.forEach(function (k){console.log(k);})

forEach这种方法也有一个小缺陷:你不能使用break语句中断循环,也不能使用return语句返回到外层函数。

5、map遍历数组

// 5、map 遍历数组let arr = ['d', 'a', 'w', 'n'];let res = arr.map(function (item) {return item;})console.log(res);

总结:

for…in 遍历(当前对象及其原型上的)每一个key,而 for…of遍历(当前对象上的)每一个value;for in 以任意顺序遍历对象的可枚举属性,(最好不要用来遍历数组) 因此当迭代那些访问次序重要的 arrays 时用整数索引去进行 for 循环 (或者使用 Array.prototype.forEach() 或 for…of 循环) 。(ES6)for…of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。不能遍历普通对象forEach 遍历数组,而且在遍历的过程中不能被终止,必须每一个值遍历一遍后才能停下来

二、JS 遍历对象

1、for……in 循环遍历对象

//1、for……in遍历对象var obj = {name: 'dawn',age: 21,address:'深圳'}for (let key in obj) {console.log(key+':'+obj[key]);}

2、Object.keys 遍历对象

//2、for……of遍历对象var obj = {name: 'dawn',age: 21,address: '深圳'}for (let key of Object.keys(obj)) {console.log(key+':'+obj[key]);}

【注意】:for…of不能单独来遍历对象,要结合Object.keys一起使用才行

Object.keys()方法会返回一个由一个指定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用for...in循环遍历该对象时返回的顺序一致。

3、Object.getOwnPropertyNames(obj) 遍历对象

//3、Object.getOwnPropertyNames(obj) 遍历对象var obj = {name: 'dawn',age: 21,address: '深圳'}Object.getOwnPropertyNames(obj).forEach(function (key){console.log(key+':'+obj[key]);})

返回一个数组,包含对象自身的所有属性(包含不可枚举属性) 遍历可以获取key和value

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。