NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
## map(数组方法): ### 特性: 1. map不改变原数组但是会 返回新数组 2. 可以使用break中断循环,可以使用return返回到外层函数 ### 实例: ``` let newarr=arr.map(i=>{ return i+=1; console.log(i); }) console.log(arr)//1,3,4---不会改变原数组 console.log(newarr)//[2,4,5]---返回新数组 ``` ## forEach(数组方法): ### 特性: 1. 便利的时候更加简洁,效率和for循环相同,不用关心集合下标的问题,减少了出错的概率。 2. 没有返回值 3. 不能使用break中断循环,不能使用return返回到外层函数 ### 实例: ``` let newarr=arr.forEach(i=>{ i+=1; console.log(i);//2,4,5 }) console.log(arr)//[1,3,4] console.log(newarr)//undefined ``` ### 注意: 1. forEach() 对于空数组是不会执行回调函数的。 2. for可以用continue跳过循环中的一个迭代,forEach用continue会报错。 3. forEach() 需要用 return 跳过循环中的一个迭代,跳过之后会执行下一个迭代。 ## for in(大部分用于对象): 用于循环遍历数组或对象属性 ### 特性: 可以遍历数组的键名,遍历对象简洁方便 ###实例: ``` let person={name:"小白",age:28,city:"北京"} let text="" for (let i in person){ text+=person[i] } 输出结果为:小白28北京 //其次在尝试一些数组 let arry=[1,2,3,4,5] for (let i in arry){ console.log(arry[i]) } //能输出出来,证明也是可以的 ``` ## for of(不能遍历对象): ### 特性: 1. (可遍历map,object,array,set string等)用来遍历数据,比如组中的值 2. 避免了for in的所有缺点,可以使用break,continue和return,不仅支持数组的遍历,还可以遍历类似数组的对象。 ``` let arr=["nick","freddy","mike","james"]; for (let item of arr){ console.log(item) } //结果为nice freddy mike james //遍历对象 let person={name:"老王",age:23,city:"唐山"} for (let item of person){ console.log(item) } //我们发现它是不可以的 ``` ## 总结: * forEach 遍历列表值,不能使用 break 语句或使用 return 语句 * for in 遍历对象键值(key),或者数组下标,不推荐循环一个数组 * for of 遍历列表值,允许遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等.在 ES6 中引入的 for of 循环,以替代 for in 和 forEach() ,并支持新的迭代协议。 * for in循环出的是key,for of循环出的是value; * for of是ES6新引入的特性。修复了ES5的for in的不足; * for of不能循环普通的对象,需要通过和Object.keys()搭配使用。