文章目录
1. `forEach`, `for in` , `for of` 三者的区别?1.1 forEach1.2 for in1.3 for of1.forEach
,for in
,for of
三者的区别?
1.1 forEach
遍历的时候更加简洁,效率和for相同,不用关心集合下标问题,减少出错的效率没有返回值不能使用break中断循环, 不能使用return返回到外层循环const array = [1, 3, 4];let newArray = arr.forEach(i => {i += 1;console.log(i); //2,4,5});console.log(arr); //[1,3,4]console.log(newArray); //undefined
1.2 for in
for…in 用来遍历数组或者对象属性(大多数是对象)
可以遍历数组的键名, 遍历对象简洁方便
// 遍历对象let person = {name: 'xiaosheng', age: 24, city: '深圳' };let text = '';for (let i in person) {text += person[i];}// 输出结果为: zhleon24深圳// 遍历数组let arry = [1, 2, 3, 4, 5];for (let i in arry) {console.log(arry[i]);}// 输出结果为 1,2,3,4,5
1.3 for of
ES6 借鉴 C++、Java、C# 和 Python语言,引入了 for…of循环,
for…of可遍历一切可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等
// 数组const arr = ['blueheart', 'zhleon', 'xiaosheng'];for (let v of arr) {console.log(v); // blueheart zhleon xiaosheng}// Setvar names = new Set(['blueheart', 'zhleon']);for (var e of names) {console.log(e); // blueheart zhleon}// 类数组对象 argumentsfunction printArgs() {for (let x of arguments) {console.log(x);}}printArgs('blueheart', 'zhleon'); // blueheart zhleon