特点 效率
for
1 | let data = [{id:1},{id:2},{id:3}] |
最基础的,相比于其他支持break、continue
for~in
1 | let data = [{id:1},{id:2},{id:3}] |
循环后id变成了字符串。(i是索引’0’ ‘1’ ‘2’)
多用于遍历对象
1 | let obj = {a:1,b:2,c:3} |
forEach
1 | let hasSpaceInValue = false |
不打算改变数据时使用。
1 | let arr = [1, 2, 3, 4, 5]; |
可以改变原始数组。
map
1 | let arr = [1, 2, 3, 4, 5]; |
创建新数组(分配内存空间存储新数组)
es6 for~of
代替for~in和forEach
遍历数组、字符串、映射(maps)、sets(集合)————iterable迭代器对象
1 | let data = [{id:1},{id:2},{id:3}] |
遍历的是元素值;可以响应break、continue、return
(考虑兼容问题)
filter
1 | let target = data.list.filter( |
不改变原数组
reduce
1 | var arr = [1,2,8,20]; |
可同时将前面数组项遍历产生的结果与当前遍历项进行运算
效率
for~in map
for for~of forEach