## 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()搭配使用。
- markdown
- 前端技术
- fiddler抓包
- thingjs项目设计
- 目录结构
- thingjs 模型
- 开发规范
- thingjs引入vuejs
- uniapp性能优化
- 防抖与节流
- uniapp 使用高德地图做路径规划不生效解决方法
- 5个CSS编程坏习惯
- echarts 刮刮乐
- jquery轮播图
- uniapp滚动问题
- 5 个不常提及的 HTML 技巧
- Http 缓存简介
- canvas像素操作
- Chrome 调试技巧
- H5隐藏特性
- vue 实战中的一些小技巧
- vue-video-player组件
- JS循环大总结
- vue自定义指令1
- 剩余运算符,扩展运算符(...)用法
- 后端技术
- 面向对象
- linux
- docker
- centos
- CentOS7安装MySQL
- CentOS7安装php
- 阿里云
- 添加宝塔
- 添加子域名
- ssl证书部署
- Liunx常用的命令
- php
- 项目常见问题总结
- 开发规范
- 9个PHP小技巧
- php生成二维码
- 算法
- 经纬度计算距离
- Kmp算法
- mysql
- 索引
- 索引概述及优势
- 索引结构
- 事务
- mysql 数据库任务计划
- 接口
- RESTful API接口设计标准及规范
- 保证接口的安全
- 了解DOS/DDOS/CSRF/XSS攻击
- 防止攻击
- mongoDB
- 安装
- Docker 安装 MongoDB
- 安装扩展
- docker安装mongodb扩展
- supervisor
- 自动化开发
- 接口字典代码配置
- 建模
- three模型展示
- 应用市场
- 应用宝上架流程
- vivo上架流程
- 华为上架流程
- 小米上架流程
- android 获取应用签名
- git部分
- git 基本操作命令
- git解决冲突
- 打包那些事
- electron
- android系统进程保活
