前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 高级函数

JavaScript 高级函数

作者头像
Karl Du
发布2020-10-23 11:41:59
3360
发布2020-10-23 11:41:59
举报
文章被收录于专栏:Web开发之路

JavaScript的高阶函数

Reduce

reduce 的语法:

代码语言:javascript
复制
Array.reduce(callback, init)

callback里包含了四个参数

  1. previousValue 上一次调用的返回值
  2. currentValue 当前处理的元素的值
  3. index 当前元素的索引
  4. array 调用reduce的数组
  5. initialValue参数,默认从第二个元素开始

我们常用的数组求和

求一个数组的合计, 我们常用的方式是用 for 循环

代码语言:javascript
复制
var arr = [1, 2, 5, 4, 7, 10, 1];
function sum(arr) {
  let total = 0;
  for (let i = 0; i < arr.length; i++) {
    total += arr[i];
  }
  return total;
}

求一个数组的合计,如果数组里的元素是对象,那么用 of 去求和会更好

代码语言:javascript
复制
var arr2 = [{ amount: 20 }, { amount: 30 }];
function sum2(arr) {
  let total = 0;
  for (const item of arr) {
    total += item;
  }
  return total;
}

Reduce数组求和

代码语言:javascript
复制
function sum3(arr) {
  return arr.reduce((pre, cur) => pre + cur);
}

用 reduce 则用 很少 的代码解决,尤其是采用了 ==es6== 语法后,更加简单

但是 reduce 并不仅此而已,还有很多高级使用方法

统计每个元素出现次数

代码语言:javascript
复制
function count(arr) {
  return arr.reduce((pre, cur) => {
    if (cur in pre) {
      pre[cur]++;
    } else {
      pre[cur] = 1;
    }
    return pre;
  }, []);
}

数组去重

代码语言:javascript
复制
function distinct(arr) {
  return arr.reduce((pre, cur) => {
    if (pre.includes(cur)) {
      return pre;
    } else {
      return pre.concat(cur);
    }
  }, []);
}

待更新

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/5/1 下午,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JavaScript的高阶函数
    • Reduce
      • 我们常用的数组求和
    • Reduce数组求和
      • 统计每个元素出现次数
        • 数组去重
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档