filter、map、reduce高阶函数与for对比

176 阅读1分钟
  1. 取小于100的数 filter :
let newNums = nums.filter(function (n) {
    return n < 100
})
console.log(newNums);

for :

let newNums = []
for (let n of nums) {
    if (n < 100) {
        newNums.push(n)
    }
}
  1. 将所有小于100的数字进行转化: 全部*2

map :

let new2Nums = newNums.map(function (n) {
    return n * 2
})
console.log(new2Nums);

for :

let new2Nums = []
for (let n of newNums) {
    new2Nums.push(n * 2)
}

console.log(new2Nums);

3.将所有new2Nums数字相加,得到最终的结果

reduce :

let total = new2Nums.reduce(function (prevalue, n) {
    return preValue + n 
}, 0)
console.logo(total);

for :

let total = 0 
for (let n of new2Nums) {
    total += n
}

filter、map、reduce

let total = nums.filter(function (n) {
    return n < 100
}).map(function (n) {
    return n * 2
}).reduce(function (prevValue, n) {
    return prevValue + n
}, 0)
console.log(total);

箭头函数

let total = nums.filter(n => n < 100).map(n => n * 2).reduce((pre, n) => pre + n);
console.log(total);