假设我们有一个像这样的对象数组-
const arr = [ { "SupplierName" : "John", "Category " : "A", "Points" : 3 }, { "SupplierName" : "John", "Category " : "A", "Points" : 11 }, { "SupplierName" : "John", "Category " : "A", "Points" : undefined }, { "SupplierName" : "John", "Category " : "B", "Points" : 2 }, { "SupplierName" : "John", "Category " : "B", "Points" : 6 }, { "SupplierName" : "Praveen", "Category " : "A", "Points" : 3 }, { "SupplierName" : "Praveen", "Category " : "A", "Points" : 7 } ];
我们需要编写一个包含一个这样的数组的JavaScript函数。
该函数应执行以下操作-
将重复的供应商分组为一个唯一的单独对象(通过重复,我们指的是具有相同“ SupplierName”和“ Category”字段的对象)。
将他们的观点加在一起
向每个对象添加一个新的“平均”字段,其中包含该供应商的平均分数。
因此,最终输出应如下所示:
const output = [ { "SupplierName" : "John", "Category " : "A", "Points" : 14, "Average" : 7 }, { "SupplierName" : "John", "Category " : "B", "Points" : 8, "Average" : 4 }, { "SupplierName" : "Praveen", "Category " : "A", "Points" : 10, "Average" : 5 } ];
const arr = [ { "SupplierName" : "John", "Category " : "A", "Points" : 3 }, { "SupplierName" : "John", "Category " : "A", "Points" : 11 }, { "SupplierName" : "John", "Category " : "A", "Points" : undefined }, { "SupplierName" : "John", "Category " : "B", "Points" : 2 }, { "SupplierName" : "John", "Category " : "B", "Points" : 6 }, { "SupplierName" : "Praveen", "Category " : "A", "Points" : 3 }, { "SupplierName" : "Praveen", "Category " : "A", "Points" : 7 } ]; const groupAndAverage = (arr = []) => { const groups = arr.reduce((acc, obj) => { const name = obj.SupplierName + obj.Category; if (acc[name]) { if (obj.Points) (acc[name].Points += obj.Points) && ++acc[name].Average; } else { acc[name] = obj; acc[name].Average = 1; //将“平均”属性作为项目计数器(在第一阶段) }; return acc; }, {}); // getting "average of Points" const res = Object.keys(groups).map( name => { groups[name].Average = Math.round(groups[name].Points/groups[name].Average); return groups[name]; }); return res; }; console.log(JSON.stringify(groupAndAverage(arr), undefined, 4));
输出结果
控制台中的输出将是-
[ { "SupplierName": "John", "Category ": "A", "Points": 22, "Average": 6 }, { "SupplierName": "Praveen", "Category ": "A", "Points": 10, "Average": 5 } ]
本文向大家介绍awk 根据表格数据计算列中的平均值,包括了awk 根据表格数据计算列中的平均值的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个;用作列定界符的文件。我们使用以下程序在第二列中计算值的平均值,提供的输入是学生组的成绩列表: 该程序的输出为2.125。 请记住,它NR保存了要处理的行数,END因此在块中它保存了文件中的总行数。 请记住,在许多应用程序(监视,统计)中,中位数是更
问题内容: 我有一个表,其中包含一列要从中提取信息的JSON数据。具体来说,我只想获取平均值。 我所拥有的例子: 我想要的例子: 关于如何使该查询正常工作的任何建议? 问题答案: 您的json数组被弄乱了,就像@poszcommented一样。必须是: 您的查询也以多种方式扭曲。在第 9.3 页中将像这样工作: SQL提琴。 在即将到来的pg 9.4中, 我们可以使用新的来简化操作(转换中也不太容
我想根据最近3天的数字计算每个customer_id和日期的移动平均值。为了计算5月4日的移动平均数,我们需要计算5月1-3日的平均购买量 输出火花DF
问题内容: 我如何知道JavaScript的周数和年份来计算日期?对于第20周和2013年以获得5/16/2013,我正在尝试这样做: 问题答案: function getDateOfWeek(w, y) { var d = (1 + (w - 1) * 7); // 1st of January + 7 days for each week 这使用简单的周定义,即2013年的第20周是5月14日
我正在编写一个java代码,它在数组中计算N个学生的平均成绩,当我输入像{3,4,3}这样的成绩时,它运行良好,但当我使用像{3.7,2.5,3.2}这样的带有小数的数字时,它开始给我带来错误,我想创建一个数据类型的类,例如学生。 任何帮助都将不胜感激。
问题内容: 我在javascript中有一组对象。内容看起来像这样; 我想保留一些对象并删除其余的对象。如果object属性为2或34,则将保留对象。其他对象被删除。遗嘱的结果看起来像这样; 我正在使用node.js v6.91。 编辑:有人建议我使用过滤器来解决这种问题。欢迎使用过滤器技术的答案。 问题答案: 您可以尝试以下方法1和2: 方法1 :(使用) 注意:这将返回一个新数组,并且不会修改