ES6forin与forof的使⽤⽅法及其区别// for in遍历的是数组的索引(即键名),⽽for of遍历的是数组元素值。
let arr = [1,2,3,4,5,6,7]
for(let index of arr){
//  console.log(index)//1 2 3 4 5 6 7
}
for(let index in arr){
// console.log(index)//0 1 2 3 4 5 6
//console.log(arr)//1 2 3 4 5 6 7
//console.log(arr[index])
}
//遍历对象通常⽤for in来遍历对象的键名
let obj = {
a:1,
b:2,
c:3
}
for(let key in obj){
console.log(key)//a b c
//console.log(obj[key])//1 2 3
}
forEach
1. 三个参数,第⼀个value, 第⼆个 index, 第三个数组体。
2. 适⽤于数组,set,map,不适应于字符串,Object。
3. ⽆法修改和删除集合数据,效率和for循环相同,不⽤关⼼集合下标的返回。
4. 不能终⽌循环,break,continue不能使⽤。
栗⼦:
es6字符串转数组let arr = [1, "ding", null, 5, true, undefined];
arr.forEach(function (value, index, a) {
console.log("value:", value, "index:", index, "a:", a);
})
for in
1. 索引为字符串
2. 多⽤于遍历对象,json,数组,⽆顺序,增加了转换过程所以开销⽐较⼤
3. 可扩展属性也会遍历
4. ⽀持break, continue
栗⼦:
for (let item in obj) {
console.log(item, ":", obj[item]);
if (item == "age") delete obj[item]; //删除属性成功
}
console.log("obj:", obj);
1. 是⽬前遍历数组最好的⽅法,可以⽤在set,map,类数组,字符串上,但是不⽀持原⽣的Object遍历。
2. ⽀持break, continue

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。