美文网首页
filter map reduce

filter map reduce

作者: 清苑折纸 | 来源:发表于2021-07-21 15:26 被阅读0次

Array.prototype.filter()

filter()方法会创建一个新的数组,所有通过测试的元素,如果没有任何数组元素通过测试,则返回空数组。

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

Array.prototype.map()

map()方法会返回一个由原数组执行回调函数后的结果组成的数组,其不会改变原数组

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]

Array.prototype.reduce()

对累加器和数组的每个值(从左到右)执行一个函数,以将其减少为单个值,返回值为函数累计处理的结果。
arr.reduce(callback,[initialValue])
callback 执行数组中每个值的函数,有四个参数:

  • accumulator 上一次调用回调返回的值,或者是提供的初始值(initialValue);
  • currentValue 数组中正在处理的元素;
  • currentIndex 数据中正在处理的元素索引,如果提供了initialValue,从0开始;否则从1开始;
  • array 调用reduce的数组。
    initialValue 可选,其值用于第一次调用 callback 的第一个参数。
    应用场景:
  1. 累加
let arr = [1,2,3]
let sum = arr.reduce(function(acc, cur,index,arr){
    return acc + cur
}, 0)
console.log(sum)
  1. 获取数组最大值
let arr = [1,2,3]
let max = arr.reduce(function(acc,cur){
    Math.max(acc,cur)
})
console.log(max)
  1. 数组去重
let arr = [1,2,3,3]
let res = arr.reduce(function(acc,cur){
    acc.indexOf(cur) == -1 && acc.push(cur)
    return acc
},[])
console.log(res)

相关文章

网友评论

      本文标题:filter map reduce

      本文链接:https://www.haomeiwen.com/subject/ghxjmltx.html