Sum All Numbers in a Range
为什么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相关推荐
- FreeCodeCamp 中级算法(个人向)
freecodecamp 中级算法地址戳这里 Sum All Numbers in a Range 我们会传递给你一个包含两个数字的数组.返回这两个数字和它们之间所有数字的和. 1 function ...
- 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 ...
- 201. Bitwise AND of Numbers Range
题目: Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all num ...
- LeetCode OJ:Bitwise AND of Numbers Range
题目描述: Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all n ...
- Python 的 sum():Pythonic 的求和方法
摘要:Python 的内置函数sum()是一种对数值列表求和的有效且Pythonic 的方法.将多个数字相加是许多计算中常见的中间步骤,因此sum()对于 Python 程序员来说是一个非常方便的工具 ...
- Python 学习笔记 列表 range() xxx XXX
Python 学习笔记 列表 range() xxx XXX print("-" * 30) for value in range(1, 5):print(value)number ...
- Python条件判断和循环,range()函数
条件判断经常使用if语句进行判断,表达方式为:if 条件语句: :elif:else if...用于执行第一条不满足if的判断,继续执行其它的判断.比如一个简单的if判断 Python3取消 ...
- python中range和xrange的异同
其中,range直接返回的是个list,而xrange返回的是一个生成器.根据文档所说,xrange更快一点,而且更省内存. 文档如下: >>> help(range) Help o ...
- python语句print(tuple(range(2)))_Python学习(四)数据结构 —— list tuple range
序列类型 list tuple range list 和 tuple list: 列表,由 [] 标识: 有序:可改变列表元素 tuple: 元组,由 () 标识: 有序:不可改变元组元素(和 ...
最新文章
- 如何在Linux使用Eclipse + CDT开发C/C++程序? (OS) (Linux) (C/C++) (gcc) (g++)
- 从零点五开始用Unity做半个2D战棋小游戏(一)
- 在IE环境下用javascript触发ABAP event
- 全国计算机等级考试题库二级C操作题100套(第59套)
- SQL Server 2014中的混合云和Hekaton功能
- 优化理论14----二分法、二分法与黄金分割法比较、python实现
- docker容器打包成镜像
- 自动化遍历-appcrawler
- win10系统做T3服务器,win10系统安装用友t3的图文教程
- 峰瑞资本李丰:共享经济如何改造专业且非标准化的服务业
- win7命名计算机无法下一步,win7还原系统不能点下一步怎么办(无响应)
- 大数据运维架构师培训(5):大数据管理平台(Cloudera CM/CDH/CDP)
- 揭秘支付机构【备付金】管理过程
- 【算法】汇总:求解π值的算法
- 让Word 2007默认文档保存格式为Word 2003的DOC格式
- 2012网易校园招聘笔试题
- 常用的时间复杂度所耗费的时间由小到大
- 71. 从Lotus Notes表单到XPage——兼谈程序里的二进制文件和文本文件
- 微信固定金额收款码批量生成
- JS 生成二维码实现(qrcode.js)