Javascript 当数字13出现时,对数组求和停止,但仍然返回sum
我对Javascript非常陌生。我试着在这里寻找答案,但不是很幸运,也许我就是这么问的。所以,现在我要发帖了 我有一个循环,在这个循环中我要得到数组的和。但是,如果数字13在数组中,则循环停止将数字相加,但仍然返回它在到达13之前添加的数字。现在,我的代码是:Javascript 当数字13出现时,对数组求和停止,但仍然返回sum,javascript,arrays,Javascript,Arrays,我对Javascript非常陌生。我试着在这里寻找答案,但不是很幸运,也许我就是这么问的。所以,现在我要发帖了 我有一个循环,在这个循环中我要得到数组的和。但是,如果数字13在数组中,则循环停止将数字相加,但仍然返回它在到达13之前添加的数字。现在,我的代码是: function sumNumbers(array) { var sum = 0; for(var i = 0; i < array.length; i++) { sum += array[i]; if(a
function sumNumbers(array) {
var sum = 0;
for(var i = 0; i < array.length; i++) {
sum += array[i];
if(array[i] == 13) {
break;
}
}
return sum;
}
函数数(数组){
var总和=0;
对于(var i=0;i
我为函数设置了参数,它是'array'
。然后我想我必须创建一个变量,数组的总和将出现在这个变量中,所以我从0
开始使用它(我确实尝试了[]
,但测试了它,结果不正确-仍然想理解这一点)。我知道,对于任何循环,都必须进行初始化,即I=0
,然后是条件,然后是最终表达式。因为元素的数量没有定义,所以我使用了长度。所以,它说,如果变量i小于这个数字,那么它将继续运行,并继续向它添加。因此,我要求它获取所有数组的总和,但如果数组中的任何数字是13
,我需要它停止,但仍然返回它在到达13
之前添加的数字
现在定义了函数,返回所有数组的总和,当其为空时返回0
。但是,我得到了这个错误
预期16
与3
完全相等
不知道我做错了什么。如果有人能帮忙解释一下,那就太棒了。这是我在这里的第一个问题,所以如果我做了一个恼人的方式,提前谢谢你 如果在找到13时需要停止加法,而在求和中没有包含13,则需要在将下一个数组元素的值添加到求和之前检查其值。我颠倒了你代码中的两行。请参阅新版本:
function sumNumbers (array) {
// First check if the array is a valid input to this function
if (typeof array == 'undefined')
return 0; // Or even better throw an exception
var sum = 0;
for (var i = 0; i < array.length; i++) {
if (array[i] == 13) { break; }
sum += array[i];
}
return sum;
}
函数数(数组){
//首先检查数组是否是此函数的有效输入
if(数组类型=='undefined')
返回0;//或者更好地抛出异常
var总和=0;
对于(var i=0;i
它与forEach类似,但只要返回true,它就会停止循环。它是为你这样的场景创建的
let total = 0;
[3,7,4,3,2,1,13,44,66,8,408,2].some(num => {
if (num === 13) return true;
total += num;
});
console.log(total); //-> 20
以下是您将如何使用它:
function sumNumbers (arr) {
let total = 0;
arr.some(num => {
if (num === 13) return true;
total += num;
});
return total;
}
有很多方法可以做到这一点。。。其中一项:
函数数(数组){
var总和=0;
对于(变量i=0;数组[i]!=13;i++){
总和+=数组[i];
}
回报金额;
}
您得到了什么错误?你要传递的数组是什么?break将只用于退出for loop我想这不是一个真正的错误,只是它期望一个不同的答案。我假设我需要在休息后放一些别的东西,这样它仍然会返回总数。所以,就像…[1,2,13]仍然会返回3而不是返回16。我认为您应该理解OP(正如他提到的)是一个JavaScript乞丐。你如何期望他容易理解你使用的箭头函数、构造函数原型、严格比较等等?也许他只是在寻找简单的解决方案。我是一个自学成才的开发人员,通过阅读我不懂的代码来学习。我对我的回答不道歉,如果OP有问题,他们可以问,我很乐意帮助他们学习。我回答的重点是,该语言具有解决问题的结构,他/她应该知道这一点。如果13从未出现在数组中会怎么样?我也运行了这段代码,它工作了。另外,谢谢你的解释,这完全有道理。我把上面的答案做对了,因为我需要休息。这个答案非常有帮助,我喜欢看到它可以用不同的方式完成。非常感谢。也谢谢你的解释。非常感谢@欢迎您的光临,我们很乐意为您提供帮助。我们曾经都是初学者。