一、for…in循环
for…in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
它循环遍历的值都是数据结构的键值
let obj = {
a: '1', b: '2', c: '3', d: '4'}
for (let o in obj) {
console.log(o) //遍历的实际上是对象的属性名称 a,b,c,d
console.log(obj[o]) //这个才是属性对应的值1,2,3,4
}
for in也可以遍历数组,但不推荐,如果遍历数组则会遍历的是数组的索引
二、for…of循环
它是ES6中新增加的语法,用来循环获取一对键值对中的值
循环一个数组:
let arr = ['China', 'America', 'Korea']
for (let o of arr) {
console.log(o) //China, America, Korea
}
循环一个对象:(报错)
let obj = {
a: '1', b: '2', c: '3', d: '4'}
for (let o of obj) {
console.log(o) //Uncaught TypeError: obj[Symbol.iterator] is not a function
}
三、forEach函数
forEach是ES5新增的方法,主要功能是遍历数组,有三个返回值:
arr.forEach(function(value,index,arrSelf){
console.log(value);
console.log(index);
console.log(arrSelf);
})
value
代表数组中的每一项
index
代表数组中每一项的索引
arrSelf
代表调用的数组本身