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

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

user9252 1月前

36 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)
  • 我认为这就是您想要的..动态标准..使用 Object.keys 和 reduce 您可以得到它。

    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 filtered = arr.filter(item => {
        return filterBy.some(fItem => {
               const keys = Object.keys(fItem);
               return keys.length > 0 && keys.reduce((acc, k) => {
                return acc && item[k] === fItem[k];
               }, true)
        });
    });
    
    console.log(filtered)
返回
作者最近主题: