循环和的Javascript
我想从for循环中找到一组数字的和 我现在有循环和的Javascript,javascript,loops,for-loop,Javascript,Loops,For Loop,我想从for循环中找到一组数字的和 我现在有 var num = ""; for(var i = 1; i < 11; i +=1){ num = num + i; } console.log(num) var num=”“; 对于(变量i=1;i
var num = "";
for(var i = 1; i < 11; i +=1){
num = num + i;
}
console.log(num)
var num=”“;
对于(变量i=1;i<11;i+=1){
num=num+i;
}
console.log(num)
这让我在JS控制台中看到了12345678910
我想产生1+2+3+4+5+6+7+8+9+10=SUM
我已尝试添加“+”字符串:
num=num+i++”代码>
但是它给了我1+2+3+4+5+6+7+8+9+10+
我的问题是如何将“+”和“=”添加到代码中并获得总和。如果希望显示+和实际总和,请执行此操作
var realSum = 0;
var num = "1";
for(var i = 2; i < 11; i +=1){
realSum = realSum + i;
num = num + "+" + i;
}
num = num + "=" + realSum;
var realSum=0;
var num=“1”;
对于(变量i=2;i<11;i+=1){
realSum=realSum+i;
num=num+“+”+i;
}
num=num+“=”+realSum;
在javascript+中,如果这看起来是最好的,它还可以连接一个字符串-它认为您将两个字符串放在一起,所以它将它们连接起来。改为将num start设置为0,这将修复它 不要使用var num=“”
尝试使用var num=0
,因为这样操作符+
被用作字符串连接num=0
将完成此任务。编辑:我以为您想查看“数学”等式,请尝试以下操作:
var numbers = 0;
for (var i = 1; i < 11; i += 1){
numbers += i;
}
console.log(numbers);
var数=0;
对于(变量i=1;i<11;i+=1){
数字+=i;
}
控制台日志(编号);
试试这个:
var numbers = [];
for (var i = 1; i < 11; i += 1){
numbers.push(i);
}
var string = numbers.join("+");
string += "=" + eval(numbers.join("+"));
console.log(string);
var number=[];
对于(变量i=1;i<11;i+=1){
数字推送(i);
}
var string=numbers.join(“+”);
字符串+=“=”+eval(numbers.join(“+”);
console.log(字符串);
如果您真的要连接
num = num + "+" + i;
试试这个:
使用Eval
var num = [];
for(var i = 1; i < 11; i +=1){
num.push(i)
}
var equation = num.join('+');
var sum = eval(equation);
console.log('Method 1: ',equation + '=' + sum)
var num=[];
对于(变量i=1;i<11;i+=1){
推送次数(一)
}
变量方程=num.join(+);
var总和=eval(等式);
console.log('方法1:',等式+'='+sum)
不使用Eval
var num = [];
var sum = 0;
for(var i = 1; i < 11; i +=1){
num.push(i)
sum += i
}
var equation = num.join('+');
console.log('Method 2: ',equation + '=' + sum)
var num=[];
var总和=0;
对于(变量i=1;i<11;i+=1){
推送次数(一)
总和+=i
}
变量方程=num.join(+);
console.log('方法2:',等式+'='+sum)
从中提取一个util供以后使用;)还有其他一些方法可以利用函数方法(reduce、map)和还没有得到广泛支持的东西(生成器、数组理解)
以下是一些需要考虑和调整的示例函数:
//有点平常
var sumRange=函数(从、到、步){
var i,
总和=从,
str=来自;
对于(i=from+step;i)您正在连接而不是添加。抱歉,伙计们,我是JS新手,所以我的问题可能很难理解。当您使用“”声明变量时,您明确地将其设置为字符串。哦,我明白了,好吧,我的道歉我真的不认为需要道歉,问题只是不清楚。
// kind of usual
var sumRange = function (from, to, step) {
var i,
sum = from,
str = from;
for (i = from + step; i <= to; i += step) {
sum += i;
str += '+' + i;
};
str += '=' + sum;
return str;
};
// sum of elements in arithmetic progression
var sumRangeAP = function (from, to, step) {
var i,
n,
str = from;
n = ((to - from) / step) + 1;
for (i = from + step; i <= to; i += step) {
str += '+' + i;
};
str += '=' + ((from + to) / 2) * n;
return str;
};
// memory efficiency (not creating hell a lot of strings) together with some functional stuff
// on the other hand it looks like assignment operators (+, +=) win with .join in terms of speed sometimes
// in many cases, I think, you may not give a shit about whether you use this or that
var sumRangeME = function (from, to, step) {
var i,
sum = from,
str = [from];
for (i = from + step; i <= to; i += step) {
str.push(i);
};
return str.join('+') + '=' + str.reduce(function (prevVal, curVal) { return prevVal + curVal; });
};
console.log(sumRange(0,20,1));
console.log(sumRangeAP(0,20,1));
console.log(sumRangeME(0,20,1));
console.log(sumRange(1,21,1));
console.log(sumRangeAP(1,21,1));
console.log(sumRangeME(1,21,1));
console.log(sumRange(7,36,1));
console.log(sumRangeAP(7,36,1));
console.log(sumRangeME(7,36,1));