数组迭代方法和归并方法总结

一、迭代方法(对数组每一项都运行)

每个方法接受两个参数(以每一项为参数运行的函数, 作为函数运行上下文的作用域对象(可选))

传给每个方法的函数接收三个参数(数组元素,元素索引,数组本身)

1.filter():函数返回true的项会组成数组后返回。(过滤函数,将数组中满足条件的项组成新数组后返回)。

2.map():返回由每次函数调用的结果构成的数组。

3.forEach():没有返回值。

4.every():如果每一项都返回true,则这个方法返回true。

5.some():如果有一项返回true,则这个方法返回true。

 

//  some  every

let numbers = [ 1, 2, 3, 4, 5 ]

let everyResult = numbers.every((item, index, array) =>  item > 2 )
console.log(everyResult)  //  false

let someResult = numbers.some((item, index, array) =>  item > 2 )
console.log(someResult)  //  true

//  filter

let filterResult = numbers.filter((item, index, array) => item > 2 )
cosole.log(filterResult)  //  [ 3, 4, 5 ]

// map

let mapResult = numbers.map((item, index, array) => item * 2 )
console.log(mapResult)  //  [ 2, 4, 6, 8, 10 ]

map还可以重新定义映射关系,返回新的object或者array

let people = [{name: '张三', age: 14}, {name: '李四', age: 16}]
let nameArray = people.map((item, index, array) => item.name )
console.log(nameArray)  // ['张三','李四']

//  forEach

numbers.forEach(item, index, array) => {
//执行某些操作
})

 

二、归并方法

归并函数的四个参数(上一个归并值,当前项,当前项的索引,数组本身)

1.reduce(对每一项都会运行的归并函数,可选的以之为归并起点的初始值) :从第一项遍历至最后一项,这个函数返回的任何值都会作为下一次调用的第一个参数。,若没有传入可选的第二个参数,则第一次迭代将从数组的第二项开始。

2.reduceRight:一切同上,只不过数组遍历方向为最后一项遍历至第一项。

let values = [ 1, 2, 3, 4, 5 ]
let sum = values.reduce((prev, cur, index, array) => prev + cur )
console.log(sum) //  15

//第一次遍历:
//prev:1,cur:2,index:1
//第二次遍历:
//prev:3,cur:3,index:2

 

posted on 2024-06-04 11:28  zy89898976  阅读(5)  评论(0编辑  收藏  举报