1. includes
includes(searchElement)
includes(searchElement, fromIndex)
const arr=[1,2,3,4,5]
const result = arr.includes(1) // true
arr.includes(4,2)
2. find
find(element,index,array) 方法返回数组中第一个满足条件的元素值
const data = [
{id:1,name:'jack',age:28},
{id:2,name:'curry',age:48},
{id:3,name:'jhon',age:8},
{id:4,name:'tom',age:28},
]
data.find(item=>item.name == 'jack') //{id:1,name:'jack',age:28}
// 还有一种解构的写法
data.find(({age})=>age<10)
3. some
some()方法测试数组中是不是至少有 1 个元素通过了被提供的函数测试。它返回的是一个 Boolean 类型的值。
const data = [
{id:1,name:'jack',age:28},
{id:2,name:'curry',age:48},
{id:3,name:'jhon',age:8},
{id:4,name:'tom',age:28},
]
data.some(({age})=>age>10) // true
4. every
测试一个数组内的所有元素是否都能过某个指定函数的测试,返回boolean 但是若测试数组为空时,则返回true
const data = [
{id:1,name:'jack',age:28},
{id:2,name:'curry',age:48},
{id:3,name:'jhon',age:8},
{id:4,name:'tom',age:28},
]
data.every(({age})=>age>3) //true
5. forEach
对数组的每个元素执行一次给定的函数
const data = [
{id:1,name:'jack',age:28},
{id:2,name:'curry',age:48},
{id:3,name:'jhon',age:8},
{id:4,name:'tom',age:28},
]
const myarr =[]
data.forEach(({name,age})=>myarr.push({name,age}))
console.log(myarr)
//[
{
"name": "jack",
"age": 28
},
{
"name": "curry",
"age": 48
},
{
"name": "jhon",
"age": 8
},
{
"name": "tom",
"age": 28
}
]
6. map
map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
{id:1,name:'jack',age:28},
{id:2,name:'curry',age:48},
{id:3,name:'jhon',age:8},
{id:4,name:'tom',age:28},
]
data.map(({name,age})=>({name,age})
//
[
{
"name": "jack",
"age": 38
},
{
"name": "curry",
"age": 58
},
{
"name": "jhon",
"age": 18
},
{
"name": "tom",
"age": 38
}
]
7. reduce
reduce() 方法对数组中的每个元素按序执行一个由您提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
第一次执行回调函数时,不存在“上一次的计算结果”。如果需要回调函数从数组索引为 0 的元素开始执行,则需要传递初始值。否则,数组索引为 0 的元素将被作为初始值 initialValue,迭代器将从第二个元素开始执行(索引为 1 而不是 0)。 注意这段话就可以了
其实这个方法在项目我基本没怎么用到过, 为啥要总结一下, 一是要熟悉一下新的api, 二是前些日子面试时被人问到, 我没回答上来, 那么索性就总结一下吧
// 数组求和
const arr = [1,2,3,4,5,6]
const sum = arr.reduce((pre,cur)=>{
return pre+cur;
},0)
// sum = 0+1+2+3+4+5+6