【问题标题】:jQuery Filter Data Array by Multiple KeysjQuery 通过多个键过滤数据数组
【发布时间】:2019-03-13 19:18:50
【问题描述】:

我有一个看起来像这样的对象数组:

var arr = [{FilterBy: 1, Id: 10, Name: W},
              {FilterBy: 1, Id: 11, Name: X}, 
              {FilterBy: 2, Id: 12, Name: Y}, 
              {FilterBy: 3, Id: 13, Name: Z}];

我有一个方法可以过滤数组并传递参数“oneId”(这是一个单一的FilterBy id):

 var filteredArr = arr.filter(function (x) { return x.FilterBy === oneId });

如何扩展此方法以接受多个 ID?我想传递一个 FilterByIds 数组(即 1、2),在这种情况下,结果应该是:

 filteredArr = [{FilterBy: 1, Id: 10, Name: W},
              {FilterBy: 1, Id: 11, Name: X}, 
              {FilterBy: 2, Id: 12, Name: Y}]

不确定我是否可以像这样(或不知道如何)对多个 Id 进行过滤。

尝试寻找,但没有产生任何结果。

提前致谢!

【问题讨论】:

    标签: jquery arrays filter


    【解决方案1】:

    好的,我希望过滤器中有一个单行答案。我继续这样做,只是遍历 FilterBy Ids,然后将一个数组推入另一个数组:

     var filterByIds = [] //my array of IDs
     var filteredData = [];
     for (var i = 0; i < filterByIds.length; i++) {
        //var newData = ;
        [].push.apply(filteredData, getFilteredDataArrayBy(selectorToUpdate, parseInt(filterByIds[i])));
    }
    
     function getFilteredDataArrayBy(fieldName, filterById) {
         return filteredDataArr = dataArray[fieldName].filter(function (x) { return x.FilterBy === filterById });
     }
    

    如果有人有一行简洁的代码,我会接受! :)

    【讨论】:

      猜你喜欢
      • 2019-11-28
      • 2017-08-30
      • 1970-01-01
      • 2021-03-05
      • 2020-05-04
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多