以下所有的方法,都可以使用传统的for循环来代替,只是语法不同而已。
数组几种遍历介绍(共同点:回调函数一样) | 应用场景 | 回调执行次数 | 函数返回值 | 回调是否需要return |
---|---|---|---|---|
map遍历 | 映射数组 | == 原数组长度 | 新数组(==) | 一定要return(当前元素) |
filter遍历 | 过滤数组 | == 原数组长度 | 新数组(!=) | return true(元素添加到新数组) |
forEach遍历 | 遍历数组 | == 原数组长度 | 无 | 无 |
some遍历 | 找出符合条件的数 | != 原数组长度 | 布尔类型 | return true;循环结束 |
every遍历 | 判断所有元素是否符合条件 | != 原数组长度 | 布尔类型 | return true; 循环继续 |
findIndex遍历 | 获取符合条件的第一个元素位置(下标) | != 原数组长度 | 数字 | return true; 循环结束 |
includes方法(底层是遍历) | 判断数组/字符串是否包含某一个值 | 无回调 | 布尔类型 | 无回调 |
for-in与for-of区别
1.功能不同 for-in是遍历数组的下标 for-of是遍历数组的元素
2.原型的属性 for-in会遍历原型的属性 for-of不会遍历原型的属性
3.数据类型 for-in可以遍历Object类型 for-of不可以遍历Object类型
总结:如果只想要属性值/元素,使用for-of效率更高