Javascript 还原后返回索引和数组

Javascript 还原后返回索引和数组,javascript,arrays,reduce,Javascript,Arrays,Reduce,我正在使用mozilla提供的reduce方法。下划线提供了它自己的版本,看起来非常相似。减少数组非常简单 ArrayName.reduce(function(a,b) { return a +b; }); 我在排序数组时也使用了非常类似的方法。然而,我不明白的是如何返回呼叫列表。提供了一个非常酷的表格,展示了他们的方法是如何工作的。我设置的数组几乎相同 var array = [1,2,3,100,55,88,2]; var sortArray= function(a,b) { re

我正在使用mozilla提供的reduce方法。下划线提供了它自己的版本,看起来非常相似。减少数组非常简单

ArrayName.reduce(function(a,b) {
  return a +b;
});
我在排序数组时也使用了非常类似的方法。然而,我不明白的是如何返回呼叫列表。提供了一个非常酷的表格,展示了他们的方法是如何工作的。我设置的数组几乎相同

var array = [1,2,3,100,55,88,2];
var sortArray= function(a,b) {
  return a -b;
}
var sorted = array.sort(sortArray);


var reduced = sorted.reduce(function(previousValue,currentValue, index,array){
  return previousValue + currentValue;
});
但我想建立的是每一个电话。我想我可以简单地引用返回值中的索引,最后加上一个

return previousValue + currentValue, index;

但是,这只返回索引。我正试图找到一种方法来获取每个调用的值。这种方法是否允许您接听每个电话?

您不需要使用
reduce
。试一试

function running_total(array) {
    var sum = 0;
    return array.map(function(elt) {
      return sum += elt;
    };
}

Reduce是将一个数组“煮沸”为一个“单一事物”。相反,map是关于“转换”数组元素的。您的问题(据我所知)是将数组中的每个元素转换为自身和前面所有元素的总和。因此,从概念上讲,它是一个映射,而不是reduce。

您可以创建另一个数组,并为每个进度存储其值

var数组=[1,2,3100,55,88,2];
var sortArray=函数(a,b){
返回a-b;
}
var sorted=array.sort(sortArray);
var进度=[];
var reduced=sorted.reduce(函数(previousValue、currentValue、索引、数组){
进度[索引]=上一个值+当前值;
返回进度[索引];
}, 0);
// ^^^^^ 
//给它一个init值,使它从第一个元素开始。

控制台日志(进度)由于逗号运算符规则,在return语句中使用
只返回索引

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
  console.log(previousValue+"--"+currentValue)
  return previousValue + currentValue;
});

这就需要你把
reduce
之后的数组变成一个变量,我不知道
reduce
之后的索引和数组是什么意思。你想从你原来的数组中得到一个新的数组作为
[1,1+2,1+2+3,1+2+3+100,…]
?我得到了索引为6的总数251。我试图找出如何获得每个索引。这与你的要求非常相似。1,1+2,1+2+3我想设置的是每次拨打的电话。我无法理解这句话,也无法理解“获取每次呼叫的价值”这句话。你想要的结果是什么?@torazaburo我真的很抱歉我做了一个错误的参考,谢谢你的更正。你的答案似乎正是OP想要的。