遍历
| 方法 | 示例 | 备注 |
|---|---|---|
| for循环 | for(let i = 0, len = arr.length; i < len; i++) {···} | 性能最好 |
| forEach | arr.forEach((item, index, arr) => {···}) index和arr可选 | 不支持continue和break continue和break可以用some和every实现 没有返回值 |
| map | arr.map((item, index, arr) => {···}, thisValue) index、arr和thisValue可选 | 有返回值 |
| for of | for(let i of iterable) const obj = { length: 2, 0: 'foo', 1: 'bar' }(类数组) | 遍历数/数组对象/字符串/map/set等拥有 迭代器对象的集合(类数组对象),不能遍 历对象。 |
| for in | for(let i in obj ) | 多用于遍历对象,输出key; 使用for in会遍历数组所有的可枚举属性, 包括原型上的属性和方法, hasOwnPropert判断属性是对象实例属性; |
| Object.keys(obj) | 获取对象属性名的集合,输出key |