jQuery在每一行中创建动态对象数组

时间:2018-10-10 01:48:16

标签: jquery

我有一个函数可以基于另一个(myFilter)过滤对象数组(数据)。如果所需的对象数组(myFilter)具有较宽的格式,则该过滤器功能可完美工作。这有效:

[{ rep_name: "John", the_task: "Cold Call" }]

字段名称(rep_name)和值(John)来自动态添加的复选框。因此,我循环使用选中的复选框来建立过滤条件,以尝试通过以下方法建立过滤功能所需的对象数组:

$('.chk_filter').each(function (a, b) {

    if ($(this).is(":checked")) {
        var f = $(this).data("field");
        var v = $(this).val();
        var item = {}
        item[f] = v;
        myFilter.push(item);      
    }
});

这是减少较大对象数组(在过滤器中具有相同字段和值)的函数:

data = data.filter(function (i) {
       return myFilter.some(function (j) {
       return !Object.keys(j).some(function (prop) {
              return i[prop] != j[prop];
              });
        });
 });
 console.log(data);

我的问题是,当我在JQuery的每个循环中构建对象数组时,会将每个对象作为行推送。我明白了:

[{rep_name: "John"}, {the_task: "Cold Call"}

当我需要这个时:

[{ rep_name: "John", the_task: "Cold Call" }]

希望有人可以像上面那样阐明对象的格式。

0 个答案:

没有答案