【问题标题】:Using underscore.js can reduce return an array?使用 underscore.js 可以减少返回数组吗?
【发布时间】:2012-01-22 05:52:32
【问题描述】:

我正在尝试使用 reduce 来返回这样的数组:

var myArray = [1,2,3];
_.reduce(myArray, function (seed, item) { return seed.push(item);}, []);

我希望它会像 myArray 一样生成一个数组。而不是第一项,种子是一个数组。然后对于第二项,种子是一个数字。这会导致错误,并且永远不会到达第三项。

这里发生了什么?

【问题讨论】:

  • 为什么需要这样使用reduce?如果你需要克隆一个数组,你最好只是slice它。
  • 说真的,这样做会更好myArray.slice()
  • 嗯...这是示例。我实际上是在尝试将数组排序为组,是的,我知道可以使用 _.sortBy() 来完成。从功能上讲,map 和 reduce 是其他更复杂的列表理解函数的构建块。所以我的问题看起来是为了理解为什么 reduce 没有返回一个列表,这是我只使用 reduce 进行分组的第一步。

标签: javascript mapreduce underscore.js


【解决方案1】:

其实seed.push()不会返回修改后的seed。做到以下几点,就对了:

_.reduce(myArray, function (seed, item) { seed.push(item); return seed; }, []);

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 2022-06-26
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多