您的位置:首页 > Web前端 > JavaScript

js编程:数组求和

2017-03-29 19:59 183 查看
数组求和

链接:https://www.nowcoder.com/questionTerminal/cc3ce199461c4c4cb8f63db61d7eba30

来源:牛客网

计算给定数组 arr 中所有元素的总和

输入描述:

数组中的元素均为 Number 类型

输入例子:

sum([ 1, 2, 3, 4 ])

输出例子:

10

很多人都说这不是很简单吗,直接for循环就行了

但是对于我,在牛客的在线编程上写的,还真就不是那么简单了。像在这样的平台上写代码一定要十分的注意,要考虑很多细节问题。

一开始我是这么写的

function sum(arr) {
var s = 0;
for (var i=0;i<arr.length;i++) {
s+= arr[i];
return s;
}


看看好像是对的,但是系统就是不给我通过,说不是所有用例都能通过。是不是很尴尬,后面想想,是不是要考虑数组长度为0时,为1时呢,好像是,所以正确代码是这样的

function sum(arr) {
var s=0;
if(arr.length==0){
return 0;
}
else if(arr.length==1){
return arr[0];
}
else{
for(var i=0;i<arr.length;i++){
s+=arr[i];
}
return s;
}
}


另外几种解法:

递归

/*
slice方法:从已有的数组中返回选定的元素。
slice(start,end);不指定end,就是从start开始,到数组结束为止

*
function sum(arr){
//还是要判断数组的长度
if(arr.length==0){
return 0;
}
else if(arr.length==1){
return arr[0];
}else{
return arr[0]+sum(arr.slice(1));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: