filter map reduce

2021-07-21  本文已影响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 执行数组中每个值的函数,有四个参数:

  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)
上一篇 下一篇

猜你喜欢

热点阅读