javascript - 在 HTML 中按 Like SQL 查询分组

标签 javascript jquery html css razor

例如我有一张表:

head1     head2      head3
x         1          BLA
y         2          BLA
z         3          BLA

我希望能够通过函数 liek SQL 进行分组:

    select count(head2) , head3
    group by head3

输出会是这样的:

3          BLA

我听说我只能在服务器端执行此操作,但我想在客户端执行此操作。

表格为HTML格式

<table>
  <thead>
    <tr>
      <th>head1</th>
      <th>head2</th>
      <th>head3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>x</td>
      <td>1</td>
      <td>BLA</td>
    </tr>
    <tr>
      <td>y</td>
      <td>2</td>
      <td>BLA</td>
    </tr>
    <tr>
      <td>z</td>
      <td>3</td>
      <td>BLA</td>
    </tr>
  </tbody>
</table>

最佳答案

所以只是为了好玩...

function countByGroup(data, val)
{
    var i, count = 0;
    for (i=0; i<data.length; i++)
    {
        if (val === data[i].head3)
        {
            count++;
        }
    }
    return count;
}

var payload = [
    {
        head1: "x",
        head2: 1,
        head3: "BLA"
    },
    {
        head1: "y",
        head2: 2,
        head3: "BLA"
    },
    {
        head1: "z",
        head2: 3,
        head3: "THER"
    }
];

window.alert(countByGroup(payload, "BLA") + " BLA");
window.alert(countByGroup(payload, "THER") + " THER");

Fiddleige.

没有很好的类似 LINQ 或类似 SQL 的方式来做这件事。如果您希望能够更改列名称,我们也可以这样做,但是,同样,这取决于您的数据在客户端上的样子

如果你想每次都知道不止一种val类型,你需要编辑函数以一次检查不止一个count,否则你在不必要地循环。

再说一遍,如果数万行数据与您的 UI 相关联,请小心排序。

关于javascript - 在 HTML 中按 Like SQL 查询分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26978087/

相关文章:

javascript - 你能覆盖 JavaScript 对象的 truthy 强制转换吗?

javascript - 从 forEach 循环 jQuery 请求变量

javascript - 为什么无法在 Bootstrap radio 组中检查 radio ?

javascript - 如果在 jQuery 中 mouseleave 超过特定时间,则隐藏文本框

javascript - $(window).resize() 在 safari : why it works also if scroll window (but doesn't resize)?

javascript - CSS/JS 用户控制的阴影效果

javascript - 缩放 div 的按钮(包含图像和 Canvas )

javascript - Leaflet离线网格层

javascript - 用户必须要么不输入邮政编码,它的长度应该为 5(仅限数字),但在我的代码中,否则如果语句行不起作用

javascript - href 内的 flash 元素