javascript - 返回reduce后的索引和数组

标签 javascript arrays reduce

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

ArrayName.reduce(function(a,b) {
  return a +b;
});

我在对数组进行排序时也使用了非常相似的方法。但是,我不明白的是如何返回调用列表。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce提供了一个非常酷的表格,展示了他们的方法是如何工作的。我将数组设置得几乎相同

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;

但是,这只返回索引。我正在尝试找到一种方法来获取每次通话的值(value)。这种方法可以让您接听每个电话吗?

最佳答案

您不需要使用 reduce 来完成您正在做的事情。尝试一下

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

Reduce 是将数组“浓缩”为“单个事物”。相比之下,map 是关于“转换”数组的元素。您的问题(据我所知)是将数组的每个元素转换为其自身与所有前面元素的总和。因此,从概念上讲,它是一个映射,而不是一个归约。

关于javascript - 返回reduce后的索引和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748636/

相关文章:

Clojure 文档 : Understanding This Example of the Reduce Function

c++ - C++ 中的 reduce 函数(用于许多集合 union )

javascript - 如何修复功能已在 Jasmine 中发现错误

javascript - 对数字和字母元素的数组进行排序(自然排序)

python - reduceByKey 在 Spark 中有两列

Javascript - 根据键字符串从对象动态获取子值

c++ - 如何在 C++ 中创建抽象类的数组

javascript - 如何在第一次点击时获得正确的百分比?

javascript - chart.js,每次更新后,避免滚动到顶部位置

javascript - JS getElementById 带有空字符串 : Invalid procedure call or argument