使用lodash选择元素,其中内部属性与数组中的值匹配

问题描述 投票:0回答:1

我目前有以下内容,并想知道是否有更简洁的方法,因为我不喜欢包含标志。

const countries = [...];
const religionFilter = [ "religA", "religB" ];
const religionFilteredCountries = [];

_.forEach(countries,
    c => {
        let flag = false;

        _.forEach(c.info, i => {
            if (_.includes(religionFilter, i.religions)) {
                flag = true;
            }
        });
        if (flag) {
            religionFilteredCountries.push(c);
        }
    }
);

这是一个jsfiddle


这是更新的jsfiddle

typescript lodash
1个回答
2
投票

由于你已经在使用lodash,你可以像这样编写religionFilteredCountries

const religionFilteredCountries =
  countries.filter((c) => _.intersection(religionFilter, c.religions).length > 0);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.