function range(start,end,step){
var countx = [];
if(step===undefined){
step=1;
for(start=1;start<=end;start+=step)
countx.push(start);
console.log(countx);
}
else {
for(var i=start;i>=end;i+=step)
countx.push(i);
console.log(countx);
}
}
function sum(arrayx){
var total=0;
for(var i=0;i<=arrayx.length;i++)
total+=console.log(array[i]);
return total;
}
我想要的结果是 的console.log(总和(范围(1,10))); // - &GT; 55
答案 0 :(得分:0)
这是获得范围总和的示例代码,如果n = 3,结果= 6 [总和3 + 2 + 1]
function sumrange(n){
result =0;
while(n-->0){
result+=n;
}
return result;
}
如果你想从范围求和
function sumrange(n,m){
result =0;
if(m>n){
while(m-->n){
result+=m;
}
return result;
}
}
答案 1 :(得分:0)
你离我很远..
我已经复制了您的代码并修复了错误,发表评论时您犯了错误。
function range(start,end,step){
var countx = [];
if(step===undefined){
step=1;
for(start=1;start<=end;start+=step)
countx.push(start);
} else {
//like pointed out by JiangangXiong, you >= would want to be <= too.
for(var i=start;i<=end;i+=step)
countx.push(i);
}
return countx; //don't forget to return
}
function sum(arrayx){
var total=0;
//this for loop wants to be < not <=
for(var i=0;i < arrayx.length;i++)
//total+=console.log(array[i]);
total += arrayx[i];
return total;
}
console.log(sum(range(1,10)));
&#13;
答案 2 :(得分:0)
可以进行多项优化,但下面是您的工作修改代码
function range(start,end,step){
var countx = [];
if(step===undefined){
step=1;
for(start;start<=end;start+=step)
countx.push(start);
console.log(countx);
}
else {
for(var i=start;i>=end;i+=step)
countx.push(i);
console.log(countx);
}
return countx;
}
function sum(arrayx){
var total=0;
for(var i=0;i<arrayx.length;i++)
total+=Number(arrayx[i]);
return total;
}
优化代码
function range(start,end,step){
var countx = [];
step = step? step: 1;
for(start;start<=end;start+=step)
countx.push(start);
return countx;
}
function sum(arrayx){
return arrayx.reduce((total, item)=>{return total+= item});
}
答案 3 :(得分:0)
else {
for(var i=start;i>=end;i+=step) {
countx.push(i);
console.log(countx);
}
}
为什么有i>=end
,而不是i<=end
。
答案 4 :(得分:0)
您可以使用javascript的reduce功能
function add(a, b) {
return a + b;
}
function range(start, end, step) {
var countx = [];
if (step === undefined) {
step = 1;
for (start = 1; start <= end; start += step)
countx.push(start);
}
else {
for (var i = start; i >= end; i += step)
countx.push(i);
}
var sum = countx.reduce(add, 0);
console.log(sum);
}
range(1, 10);
答案 5 :(得分:0)
您的代码有更正:
function sum(arrayx){
return total = arrayx.reduce((sum,num) =>{
return sum += num;
});
}
使用reduce改进sum函数:
from collections import defaultdict
dd = defaultdict(list)
for d in (d1, d2):
for key, value in d.items():
dd[key].append(value)
答案 6 :(得分:0)
function range(start,end,step){
var countx = [];
if(step===undefined){
step=1;
for(start=1;start<=end;start+=step)
countx.push(start);
console.log(countx);
}
else {
for(var i=start;i>=end;i+=step)
countx.push(i);
console.log(countx);
}
return countx;
}
function sum(arrayx){
var total=0;
for(var i=0;i<arrayx.length;i++)
total+=Number(arrayx[i]);
return total;
}
console.log(sum(range(1,10)));
&#13;
function range(start,end,step){
var countx = [];
if(step===undefined){
step=1;
for(start=1;start<=end;start+=step)
countx.push(start);
console.log(countx);
}
else {
for(var i=start;i>=end;i+=step)
countx.push(i);
console.log(countx);
}
return countx;
}
function sum(arrayx){
var total=0;
for(var i=0;i<arrayx.length;i++)
total+=Number(arrayx[i]);
return total;
}
console.log(sum(range(1,10)));
&#13;