1.map
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
let arr = [1,22,34,56,76,89]
let arr2 = arr.map((val,index,arr) => {
return val + '修改'
})
// arr ["1修改", "22修改", "34修改", "56修改", "76修改", "89修改"]
// arr2 [1,22,34,56,76,89]
2.reduce
语法
arr.reduce((total, currentValue, currentIndex, arr) => {},initialValue)
arr 操作的原始数组
total上一次调用的返回值,第一次调用是初始值 即 int
currentValue正在处理的当前数组元素
currentIndex当前正在处理的数组的索引
initialValue累计的初始化值
let arr = [1,22,34,56,76,89]
let total = arr.reduce((total,val)=>{
return total + val
})
console.log(total)
// 278
实际事例:根据对象的路径修改对象下的属性
3.filter
过滤器,筛选出符合要求的数据。
arr.filter((currentValue,index,arr)=>{ return true||false }, thisValue)
arr 原始数组
currentValue 当前循环到的val值
index 当前循环到的索引值
根据return的值来决定是否添加到新的数组里返回出来
let arr = [1,22,34,56,76,89]
let arr2= arr.reduce((val,index)=>{
return val > 11 && index > 3
})
console.log(arr2)
// [76, 89]
4.find
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
find() 方法为数组中的每个元素都调用一次函数执行:
语法
arr.find(function(currentValue, index, arr) => { return true||false },thisValue)
arr 原始数组
currentValue 当前循环到的val值
index 当前循环到的索引值
和filter 的区别,fiter 返回的是一个符合条件的数组,find数组的第一个元素的值。
5.findeIndex
和find 区别是返回 第一个符合条件的索引
6.every
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
语法
array.every(function(currentValue,index,arr),thisValue)
7.some
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
- 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
- 如果没有满足条件的元素,则返回false。
语法
array.some(function(currentValue,index,arr),thisValue)
<script>console.log(document)</script>