javascript - 对关联数组键值求和并按键对其进行分组

标签 javascript jquery

我的表格如下:

<table>
   <thead>
      <th>PRODUCT</th>
      <th>QUANTITY</th>
      <th>AREA</th>
      <th>PRICE</th>
      <th>TOTAL</th>
   <tr>
      <td id="name">SWEETS</td>
      <td id="qty">10</td>
      <td id="area">250</td>
      <td id="price">16.50</td>
      <td id="total">160.50</td>
   </tr>
   <tr>
      <td id="name"">DRY FOODS</td>
      <td id="qty">5</td>
      <td id="area">100</td>
      <td id="price">10.25</td>
      <td id="total">51.25</td>
   </tr>
   <tr>
      <td id="name">FRESH</td>
      <td id="qty">20</td>
      <td id="area">250</td>
      <td id="price">5</td>
      <td id="total">100</td>
   </tr>
   <tr>
      <td id="name">MEAT</td>
      <td id="qty">10</td>
      <td id="area">250</td>
      <td id="price">15</td>
      <td id="total">150</td>
   </tr>
   <tr>
      <td id="name">FROZEN</td>
      <td id="qty">20</td>
      <td id="area">300</td>
      <td id="price">10</td>
      <td id="total">200</td>
   </tr>
</table>

所以,我想创建一个像 {area:total} 这样的数组,然后根据面积和总面积值对数组值进行分组。

喜欢:
区域 250:410.5
区域 100:51.25
区域 300:200

我尝试如下,得到了它的数组,但我不知道如何对区域进行分组(我使用 setInterval 函数,因为员工可以删除或更改区域值)

            setInterval(function() {
            var $row = $(this).closest("tr");
            var sasData = [];
            $row.each(function(i) {
                var sasValue = parseFloat($row.find("#area").val());
                var totValue = parseFloat($row.find("#total").val());
                sasData.push({sas:sasValue, tot:totValue});
                console.log(sasData);
            });

            function compressedArray(original) {
                var compressed = [];
            };
        }, 1500)

您能告诉我如何处理这个问题吗?

最佳答案

这个 JSFiddle 应该可以解决您的问题。我还修复了您丢失的标题、DRY FOODS td 中的双引号,并将 id 更改为类:

http://jsfiddle.net/Q9nrf/1/

var areas = {};
$("tr").each(function() {
    var area = $(this).find("td.area").text();
    if (area != "") {
        var total = parseFloat($(this).find("td.total").text());
        if (!areas.hasOwnProperty(area)) {
            areas[area] = 0;            
        }
        areas[area] += total;
    }
});
console.log(areas);

关于javascript - 对关联数组键值求和并按键对其进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894123/

相关文章:

javascript - 如何在没有时区的情况下发送 AngularStrap 日期选择器值?

javascript - jQuery 中基于过滤器的排序

javascript - 从 readFile 内部设置全局数组

javascript - 使用 jquery 的不显眼的 javascript - 10 分钟的好教程?

javascript - 如何将图像准确放置在菜单位置

javascript - JavaScript 中更简单的 "Class"定义

javascript - 是否可以中止数据类型为 json 的 jquery $.ajax 请求?

javascript - ReSharper 对于 JavaScript 文件非常慢

javascript - 使用带有数据表的组合框进行过滤

javascript - 我应该如何存储和检索字典单词