[Talk is cheap. Show me the code]
不想看理论知识请直接移步最后代码示例。
这里只写了几个简单的例子,其中sum2方法在掘金上有很多争议的地方。自己仅作为学习记录下来。
一、es5
function sum(arr){
if(Array.isArray(arr)){
var arrSum = 0
for(var i=0;i<arr.length;i++){
arrSum +=arr[i]
}
return arrSum
}
}
function sum2(arr){
if(Array.isArray(arr)){
var arrSum = 0
for(var i=0;i<arr.length;i++){
arrSum += arr[i]+arr[arr.length-i-1]
}
return arrSum/2
}
}
function sum3(arr){
if(Array.isArray(arr)){
let arrSum = 0
arr.forEach((item,index) => {
arrSum+=item
})
return arrSum
}
}
function sum4(arr){
if(Array.isArray(arr)){
let arrSum = 0
arrSum = eval(arr.join('+'))
return arrSum
}
}
/** 等差数列求和*/
function sum5(arr){
if(Array.isArray(arr)){
var arrSum = 0
arrSum = (arr[0]+arr[arr.length-1])*arr.length/2
return arrSum
}
}
二、es6
/** es6 */
// prev:上次调用函数的返回值
// current:当前元素
// index:当前元素的索引
// arr:当前被遍历的数组
var sumEqual = arr.reduce((prev,current,index,arr)=>{
return prev+current
})
如果有任何关于本文的意见,欢迎在文章下方留言,我会在看到的第一时间回复。