8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

使用条件数组对 js 进行 Javascript 动态过滤

user9252 1月前

37 0

const arr = [ {label : 'lbl1', text: 'txt1'}, {label : 'lbl2', text: 'txt2'}, {label : 'lbl3', text: 'txt3'}, {label : 'lbl4', text: 'txt4'}, // 更多项目];const filterBy = ...

const arr = [
   {label : 'lbl1', text: 'txt1'},
   {label : 'lbl2', text: 'txt2'},
   {label : 'lbl3', text: 'txt3'},
   {label : 'lbl4', text: 'txt4'},
   // much more items
];

const filterBy = [
    {label: 'lbl1',text: 'txt1'},
    {label : 'lbl4', text: 'txt4'}
    //may have 0 or more items
];

我想 动态地 过滤 arr 来自 filterBy . filterBy UI 的内容...这里它只是表示用户可以传递的内容...

我会以静态的方式做:

arr.filter(x => (x.text == filterBy[0].text && x.label == filterBy[0].label) ||
   .            (x.text == filterBy[1].text && x.label == filterBy[1].label)
);

是否可以在 JS 中链接动态标准?谢谢

帖子版权声明 1、本帖标题:使用条件数组对 js 进行 Javascript 动态过滤
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由user9252在本站《arrays》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您可以使用reduce并在回调中使用filter来获取项目 arr

    const arr = [{
        label: 'lbl1',
        text: 'txt1'
      },
      {
        label: 'lbl2',
        text: 'txt2'
      },
      {
        label: 'lbl3',
        text: 'txt3'
      },
      {
        label: 'lbl4',
        text: 'txt4'
      },
      //.... much more items
    ];
    
    const filterBy = [{
        label: 'lbl1',
        text: 'txt1'
      },
      {
        label: 'lbl4',
        text: 'txt4'
      }
    ];
    
    
    const res = filterBy.reduce((acc, curr) => {
    
      acc.push(...arr.filter(item => {
        return item.label === curr.label && item.text === curr.text
      }))
    
      return acc;
    }, []);
    
    console.log(res)
返回
作者最近主题: