社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

jQuery按多个键筛选数据数组

ktstar • 4 年前 • 279 次点击  

我有一个对象数组,看起来像:

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?我想传递一个filterbyid数组(即1,2),在这种情况下,结果应该是:

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

不确定我是否可以对多个ID进行这样的筛选(或者不知道如何进行)。

试着看,但什么也没让步。

提前谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52688
 
279 次点击  
文章 [ 1 ]  |  最新文章 4 年前
ktstar
Reply   •   1 楼
ktstar    5 年前

好吧,我希望在过滤器里有一行答案。我继续做,只是在FilterBy id上循环,然后将一个数组推入另一个:

 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 });
 }

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