javascript - 使用 Java Script 或 jQuery 对特定项目进行计数并创建 HashMap

标签 javascript jquery

我有这样的数据:

A,10,USA
B,20,UK
A,5,USA

输出必须是这样的:

A has ran 15 miles with average of 7.5
B has ran 20 miles with average of 20

在 jQuery 中我写了这样的代码:

$(document).ready(function(){
               $('#calculate').click(function(){
                $('#report').empty();
                var data = $('#input').val();



                 $.each($.csv.toArrays(data), function(_, row) {

                     var namecount = 0
                     $(row[0]).each(function(){
                        namecount++; 
                     });

                     var totalevents = 0;
                     $(row[1]).each(function(){
                        totalmiles++; 
                     });

                     var average = totalmiles / namecount;

                     $('#report').append('<div>' + row[0] + ' has ran ' + totalmiles +"  "+'miles with an average of'+"  "+average +'</div>');
                 });
               });
            });

但代码对总里程和平均值计算 0 和 NaN。我尝试在 jQuery 中使用 Hashtable 来解决这个问题,但我还没有找到一个好的指南来向我展示如何通过 javascript 或 jQuery 来进行这些计算。

最佳答案

尝试将此作为您的主要代码:

var aggregates = {};

$.each($.csv.toArrays(data), function(_, row) {
    var id = row[0];
    var miles = row[1];
    if (aggregates[id] === undefined) {
        aggregates[id] = {
            count : 0,
            miles : 0
        };
    }
    aggregates[id].miles += parseInt(miles);
    aggregates[id].count++;
});

for (id in aggregates) {
    $("#report").append(id + " ran " + aggregates[id].miles + " miles with average of " + (aggregates[id].miles / aggregates[id].count));
}

这是它的 fiddle : http://jsfiddle.net/7Ev7V/

这里,聚合对象充当哈希表,以 id 作为键,对象将计数和英里作为值。

关于javascript - 使用 Java Script 或 jQuery 对特定项目进行计数并创建 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15486330/

相关文章:

jquery - 选择给定类型元素上方最接近给定类型的元素

jQuery 替换 focusout

javascript - 为什么这个内存实现对匿名函数有效,但对声明的函数无效?

javascript - 为什么告诉 jQuery 单击我的链接按钮会减慢我的页面速度?

javascript - 单击链接时简单淡出图像

javascript - 关于 $(document).bind() 的问题

jquery - 如何隐藏多个项目但只调用处理程序一次?

javascript - 当 View 从操作结果返回时,Select2 脚本无法正确渲染

javascript - 根据页面位置生成 Margin-Top 大小 - 固定 Off Canvas

javascript - jquery.mobile "tap"触发了 "focus"事件