react-native - 如何执行 groupBy 并添加在 underscore.js 中分组的值的总和

标签 react-native underscore.js

来自这里:

var x = [ 
    {category: 'Title', price: 100 }, 
    {category: 'Title', price: 200 },
    {category: 'Title3', price: 300 },
    {category: 'Title3', price: 400 },
    {category: 'Title5', price: 500 },
];

对此:

var x = [
    {category: 'Title', price: 300},
    {category: 'Title3', price: 700},
    {category: 'Title5', price: 500},
];            

逻辑与SQL查询相同:

SELECT category, sum (price) FROM x GROUP BY category;

最佳答案

更新:

  1. groupBy 将按“类别”对初始数组进行分组。
  2. map 然后将通过传入两个参数来迭代分组数组中的每个对象:keyvalue。第一个 key 将是“Title”,它的 value 是一个数组 [{category: 'Title', price: 100 }, {category: 'Title ', 价格:200 }].
  3. map 中返回一个更新的数组之前,reduce 用于总结“价格”。基本上,它遍历数组(第一个参数)并从函数(第二个参数)返回总和。请注意,在第一次迭代中,total 将为 0(reduce 中的最后一个参数)。因此,第一次返回将是 0 + 100,然后在第二次迭代中作为"new"total 传入,依此类推。

可以引用documentation了解更多详情。

试试这个:

var groups = _.groupBy(x, 'category');
var result = _.map(groups, function(value, key) {
  return { 
    category: key, 
    price: _.reduce(value, function(total, o) { 
        return total + o.price;
    }, 0) 
  };
});

关于react-native - 如何执行 groupBy 并添加在 underscore.js 中分组的值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42802995/

相关文章:

javascript - Axios Post 在调试中工作,但在 Android 发布版本中给出 "Network Error"

css - 使用 CSS 在 React Native 中创建自定义图表

javascript - underscorejs中_.each(list)为空时如何显示消息?

javascript - 尝试使用 _.sortBy 方法对对象数组进行排序

javascript - 如何检查继承(对象/原型(prototype))

javascript - underscore.js 在提供真正的随机数方面有多好?

reactjs - 当它在 React 中可见时,在 Modal 中调用 API 的正确方法是什么?

html - 个人资料图片显示

javascript - 如何在 React Native 中更改原生 Picker fontSize 和 fontFamily

javascript - 将嵌套数组合并为一个?