Javascript 如何使用顺序求和执行循环?

Javascript 如何使用顺序求和执行循环?,javascript,Javascript,我有一个循环数组: var-arr=[5,4,9,6,4]; var总和=0; arr.forEach(功能(项目){ 总和+=parseInt(项目); 控制台日志(总和) });您只需将控制台.log向上移动一行即可。如果您想同时记录28,则在循环后添加console.log(sum) var-arr=[5,4,9,6,4]; var总和=0; arr.forEach(功能(项目){ 控制台日志(总和) 总和+=parseInt(项目); });只需重新排列一些代码,如下所示: var

我有一个循环数组:

var-arr=[5,4,9,6,4];
var总和=0;
arr.forEach(功能(项目){
总和+=parseInt(项目);
控制台日志(总和)

});
您只需将
控制台.log向上移动一行即可。如果您想同时记录
28
,则在循环后添加
console.log(sum)

var-arr=[5,4,9,6,4];
var总和=0;
arr.forEach(功能(项目){
控制台日志(总和)
总和+=parseInt(项目);

});只需重新排列一些代码,如下所示:

var-arr=[5,4,9,6,4];
var总和=0;
arr.forEach(功能(项目){
控制台日志(总和)
总和+=parseInt(项目);

});如注释中所述,只需向上移动控制台日志行,即可获得您声明的所需结果

const arr=[5,4,9,6,4];
设和=0;
arr.forEach(功能(项目){
控制台日志(总和);
总和+=parseInt(项目);
});
在你干扰它之前,简单地显示你的计数器。但是,由于在循环之前将
sum
定义为0,所以结果总是以0开头


您的输出现在应该与您要求的一样。

首先记录总和值

var arr = [5, 4, 9, 6, 4];

var sum = 0;

arr.forEach(function(item) {
  console.log(sum)
  sum += parseInt(item);
});

您可以将该值添加到总和中,并使该总和在下一个循环中可用

此解决方案使用先采取的方法,并在以后的运行中更改值

[value, changePart][index]
var数组=[5,4,9,6,4],
result=array.map((s=>v=>[s,s+=v][0])(0));

console.log(…结果)好吧,你可以用很多不同的方法来做。移动
console.log
一行可以是一行。但是,如果您不想移动您的
控制台.log
,请参阅下面的代码,其中我使用了两个
sum
变量:

var arr = [5, 4, 9, 6, 4];

var sum = 0;
var sum2 = 0;

arr.forEach(function(item) {
  sum += sum2;
  sum2 = parseInt(item);
  console.log(sum)
});

这已经得到了回答,但值得一提的是,forEach api实际上有3个参数,而不仅仅是1个,您可以使用这些参数,下面是一个示例:

var arr = [5, 4, 9, 6, 4];

var sum = 0;

arr.forEach((item,i)=>{
    //"item" is the item
    //"i" is the current index
    //the third argument is the whole array
    sum += parseInt(item);
    console.log(sum);//as pointed out by @Jacob you can just move this line up
    if(i === arr.length+1) return; //but you can also just stop the iteration on the exact index you want like this
});

这并不是满足您需求的最佳解决方案,因为您在每次迭代中都使用求和运算来检查索引,但它更灵活,而且最好知道api提供了当前索引。

如果您只想让日志按此顺序排列,请考虑使用
reduce
。你可以移动
控制台.log
一行。@evolutionxbox这是一个错误的选择。@connexo这是为什么?@evolutionxbox现在我想了想,同意
reduce
可能是一个不错的选择,即使在这里也是如此。补充我的答案。
var arr = [5, 4, 9, 6, 4];

var sum = 0;

arr.forEach((item,i)=>{
    //"item" is the item
    //"i" is the current index
    //the third argument is the whole array
    sum += parseInt(item);
    console.log(sum);//as pointed out by @Jacob you can just move this line up
    if(i === arr.length+1) return; //but you can also just stop the iteration on the exact index you want like this
});