为什么80%的码农都做不了架构师?>>>   

我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。 最小的数字并非总在最前面。

function sumAll(arr) {var a=arr.sort();var x=Math.max.apply(null,a);var y=Math.min.apply(null,a);var sum=x+y;for(i=y+1;i<x;i++){arr.push(i);}return arr.reduce(function(previousValue, currentValue, index, array){return previousValue + currentValue;
});
}
sumAll([1, 4]);

用到的知识:

arr.reduce(callback,[initialValue])

  • 概述
  • reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。
  • 语法
  • arr.reduce(callback,[initialValue])
  • 参数
  • callback
  • 执行数组中每个值的函数,包含四个参数
  • previousValue
  • 上一次调用回调返回的值,或者是提供的初始值(initialValue)
  • currentValue
  • 数组中当前被处理的元素
  • index
  • 当前元素在数组中的索引
  • array
  • 调用 reduce 的数组
  • initialValue
  • 作为第一次调用 callback 的第一个参数。
  • 描述
  • reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。
  • 回调函数第一次执行时,previousValue 和 currentValue 的取值有两种情况,如果 initialValue 在调用 reduce 时被提供,那么第一个 previousValue 等于 initialValue ,并且currentValue 等于数组中的第一个值;如果initialValue 未被提供,那么previousValue 等于数组中的第一个值,currentValue等于数组中的第二个值。
  • 如果数组为空并且没有提供initialValue, 会抛出TypeError 。如果数组仅有一个元素(无论位置如何)并且没有提供initialValue, 或者有提供initialValue但是数组为空,那么此唯一值将被返回并且callback不会被执行。
  • 例如执行下面的代码

[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){ return previousValue + currentValue; });

取最大值:
Math.max(null,arr)
ES6之后有一个新的方法:Math.max(...arr)

转载于:https://my.oschina.net/mfeng/blog/752938

Sum All Numbers in a Range相关推荐

  1. FreeCodeCamp 中级算法(个人向)

    freecodecamp 中级算法地址戳这里 Sum All Numbers in a Range 我们会传递给你一个包含两个数字的数组.返回这两个数字和它们之间所有数字的和. 1 function ...

  2. leetcode 201. Bitwise AND of Numbers Range(位运算,dp)

    Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers ...

  3. 201. Bitwise AND of Numbers Range

    题目: Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all num ...

  4. LeetCode OJ:Bitwise AND of Numbers Range

    题目描述: Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all n ...

  5. Python 的 sum():Pythonic 的求和方法

    摘要:Python 的内置函数sum()是一种对数值列表求和的有效且Pythonic 的方法.将多个数字相加是许多计算中常见的中间步骤,因此sum()对于 Python 程序员来说是一个非常方便的工具 ...

  6. Python 学习笔记 列表 range() xxx XXX

    Python 学习笔记 列表 range() xxx XXX print("-" * 30) for value in range(1, 5):print(value)number ...

  7. Python条件判断和循环,range()函数

    条件判断经常使用if语句进行判断,表达方式为:if 条件语句:      :elif:else if...用于执行第一条不满足if的判断,继续执行其它的判断.比如一个简单的if判断 Python3取消 ...

  8. python中range和xrange的异同

    其中,range直接返回的是个list,而xrange返回的是一个生成器.根据文档所说,xrange更快一点,而且更省内存. 文档如下: >>> help(range) Help o ...

  9. python语句print(tuple(range(2)))_Python学习(四)数据结构 —— list tuple range

    序列类型 list   tuple   range list 和 tuple list: 列表,由 [] 标识: 有序:可改变列表元素 tuple: 元组,由 () 标识: 有序:不可改变元组元素(和 ...

最新文章

  1. 如何在Linux使用Eclipse + CDT开发C/C++程序? (OS) (Linux) (C/C++) (gcc) (g++)
  2. 从零点五开始用Unity做半个2D战棋小游戏(一)
  3. 在IE环境下用javascript触发ABAP event
  4. 全国计算机等级考试题库二级C操作题100套(第59套)
  5. SQL Server 2014中的混合云和Hekaton功能
  6. 优化理论14----二分法、二分法与黄金分割法比较、python实现
  7. docker容器打包成镜像
  8. 自动化遍历-appcrawler
  9. win10系统做T3服务器,win10系统安装用友t3的图文教程
  10. 峰瑞资本李丰:共享经济如何改造专业且非标准化的服务业
  11. win7命名计算机无法下一步,win7还原系统不能点下一步怎么办(无响应)
  12. 大数据运维架构师培训(5):大数据管理平台(Cloudera CM/CDH/CDP)
  13. 揭秘支付机构【备付金】管理过程
  14. 【算法】汇总:求解π值的算法
  15. 让Word 2007默认文档保存格式为Word 2003的DOC格式
  16. 2012网易校园招聘笔试题
  17. 常用的时间复杂度所耗费的时间由小到大
  18. 71. 从Lotus Notes表单到XPage——兼谈程序里的二进制文件和文本文件
  19. 微信固定金额收款码批量生成
  20. JS 生成二维码实现(qrcode.js)

热门文章

  1. 一张脑图说清 Nginx 的主流程
  2. ML之监督学习算法之分类算法一 ———— k-近邻算法(最邻近算法)
  3. 原来这样做运维,就可以不被 KO丨课程推广
  4. 如何更好的利用Node.js的性能极限
  5. Ubuntu安装搜狗输入法
  6. 代理模式、动态代理和面向方面
  7. java美元兑换,(Java实现) 美元汇率
  8. Python3|Opencv——添加高斯噪声Gauss Noise
  9. redis list操作
  10. python各进制、字节串间的转换