我想在js里用循环的方法将数字相加,如输入1234,输出结果为10,现在我只设一个变量,不知道下面怎么做?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想在js里用循环的方法将数字相加,如输入1234,输出结果为10,现在我只设一个变量,不知道下面怎么做?相关的知识,希望对你有一定的参考价值。
var a=0;
a=parseInt(prompt(a));
for(var i=0;i<a.length;i++)
document.write(a.substr(i,1))
document.write(a)
也可以直接用字符串的相加,比如var str=1234字符,你可以直接str[0]*1+str[1]*1+str[2]*1+str[3]*1;
JS的数据类型是弱数据类型,不用特意转换的,比如上面的你将字符串乘以1,它就自动转换成数字了追问
1234是举得列子,如果是用户输入小于10000的整数应该怎么写?
追答var a=0;
a=window.prompt("请输入数字",1);
if(a)
var arr=a.split("");
var sum=0;
for(var i = 0;i<arr.length;i++)
sum+=parseInt(arr[i]);
console.log(sum);
这就是完整的 粘贴过去就行
a=window.prompt("请输入数字",1);
if(a)
var arr=a.split("");
var sum=0;
for(i in arr)
sum+=parseInt(arr[i]);
document.write(sum)
参考技术B 1+2+3+4=10
如何将在JavaScript中保存为数组的数字与while循环相加
哪里出错了?我想对数组中的每个数字求和。警报说NaN
。
var numbers = [10, 42, 5, 87, 61, 34, 99];
var i = 0;
var e = 0;
while(i <= numbers.length) {
e = e + numbers[i];
i++;
}
alert(e);
问题在于数组长度您正在检查,因为数组索引从0开始。这样做时:
i <= numbers.length
您正在检查[0:10,1:42,2:5,3:87,4:61,5:34,6:99,7:???]因为数字长度是7.要解决它只需:
i < numbers.length
您不检查数组中的现有数字。
以下是我们在学校的想法:
//main code//
var numbers = [10, 42, 5, 87, 61, 34, 99];
var result = sumIntArray(numbers);
//end of main code//
function sumIntArray(array){
var result = 0;
for (var i = 0; i < array.length; i++) {
if (array[i].isInteger()) {
result += array[i];
} else {
if (i === 0) {
alert("1st object in array is not number, will skip...");
}
else if (i === 1) {
alert("2nd object in array is not number, will skip...");
}
else if (i === 2){
alert("3rd object in array is not number, will skip...");
}
else {
alert((i+1).toString() + "th object in array is not number, will skip...");
}
}
}
return result;
}
for循环添加了这个i ++你在while循环中创建并使代码更清晰。 无需在主代码中声明我:)
- 始终使函数简化主代码。
- 即使有人想打破逻辑,也要制造永远不会出错的功能。
虽然不要让学校打破你的创造力,但你的代码很棒! :)
这条线是原因:
while(i <= numbers.length) {
数组是0索引,所以你可以从索引0(包括)到numbers.length
(不包括)。您将超出该限制,导致您访问未在给定索引处定义的元素。你必须这样做:
while(i < numbers.length) {
或者使用ES2015语法,您可以这样做。
let numbers = [10, 42, 5, 87, 61, 34, 99];
let sum = numbers.reduce((a,b) => a + b);
你可以读懂Array.prototype.reduce(accumulator, element, callback, startingValue)
here。
您的情况有误,只需使用<而不是<=
while(i < numbers.length)
有几种方法可以改善这一点。首先,你想改变你的条件i < numbers.length
,而不是i <= numbers.length
。正如你所写,最后一个数字永远不会被计算在内。
你可以改进的另一种方法是使用+=
表示法 - 当你可以写e = e + numbers[i]
时,没有必要写e += numbers[i]
。
你可以从数组的末尾用qazxsw poi和qazxsw poi条件下的真实性检查。
在里面只需添加项目。
post increment
以上是关于我想在js里用循环的方法将数字相加,如输入1234,输出结果为10,现在我只设一个变量,不知道下面怎么做?的主要内容,如果未能解决你的问题,请参考以下文章