map:
map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值
也就是map()进行处理之后返回一个新的数组
⚠️注意:map()方法不会对空数组进行检测
map方法不会改变原始数组
forEach
forEach方法用于调用数组的每个元素,将元素传给回调函数
⚠️注意: forEach对于空数组是不会调用回调函数的 ,
没有返回一个新数组&没有返回值
应用场景:为一些相同的元素,绑定事件处理器!
不可链式调用
reduce
reduce() 方法接收一个函数作为累加器
,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当前元素值,当前索引,原数组
语法:arr.reduce(callback,[initialValue])
callback:函数中包含四个参数
- previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
- currentValue (数组中当前被处理的元素)
- index (当前元素在数组中的索引)
- array (调用的数组)
initialValue (作为第一次调用 callback 的第一个参数。)
const arr = [1, 2, 3, 4, 5] const sum = arr.reduce((pre, item) => { return pre + item }, 0) console.log(sum) // 15 复制代码
filter
用于数组的过滤
for...in...和 for...of...
因此另外有for-in循环和for-of循环两种增强型循环。其中,for-in是ES5标准,遍历的是key(可遍历对象、数组或字符串的key);for-of是ES6标准,遍历的是value(可遍历对象、数组或字符串的value)。
for...in 遍历的是对象,for...of遍历的是数组
直接看简单的代码示例了解用法。
// for...in... 是无序列表 const arr = { name: '小何', age: '19', type: '帅', content: '前端' } for(key in arr) { console.log(key) // name, age, type, content console.log(arr[key]) // 小何, 19, 帅, 前端 } // for...in... 是有序列表 const m = ['第一', '第二', '第三'] for(let item of m) { console.log(item) // 第一, 第二, 第三 }