如何计算一个列表中为真语句的个数?



我在React Native视图中有一个动态布局——它根据特定数据集提供的数据而变化。例如,可能有一个提供的指南,库存或观察列表需要显示-但可能只是在任何数据集中提供了一个,两个或三个这些东西的组合。

我需要根据每个提供的数据类型的状态在整个视图中提供条件样式/显示对象。

目前我有一系列的检查返回true如果状态填充,即:

const hasSiteGuide = () => {
if (!this.isEmpty(this.state.locationSiteGuidePdf)) {
return true;
}
}; 

然后我有一系列函数来确定提供了多少项并提供相关的样式—以下是逻辑检查:

const layout_full = () => {
if (hasSiteGuide() && hasInventoryItems() && hasObservations()) {
return true;
}
};
const layout_one = () => {
if (!hasSiteGuide() && !hasInventoryItems() && !hasObservations()) {
return true;
}
};
const layout_two = () => {
if (!hasSiteGuide() || !hasInventoryItems() !hasObservations()) {
if (hasSiteGuide() || hasInventoryItems()) {
return true;
}
}
};

检查用于在多个区域显示条件样式-例如:

<View
style={[
layout_full() && RP_Styles.btnWrap,
layout_three() && RP_Styles.btnWrap_three,
layout_two() && RP_Styles.btnWrap_two,
layout_one() && RP_Styles.btnWrap_one,
]}>

我的问题是——我确信有更好的方法来做到这一点…特别是当我即将实现第四种可能性-我想知道是否有一种方法,我可以只使用一个函数来计算列表中有多少真语句,并返回相关条件

ie:

returnTrueCount(hasSiteGuide(), hasInventoryItems(), hasObservations())。-这可能吗?或者有人有更好的方法吗?非常感谢

如果你想做这样的事情:returnTrueCount(hasSiteGuide(), hasInventoryItems(), hasObservations())然后我认为下面的解决方案将会工作。

const a = () => true;
const b = () => true;
const c = () => false;
const d = () => true;
function returnTrueCount(...funcs) {
return funcs.reduce((a, f) => a + +f(), 0);
}
console.log(returnTrueCount(a, b, c, d));

这对我有用:

const returnTrueCount = (array, value) => {
return array.filter((v) => v === value).length;
};

用一个基本数组和要检查的值调用。

相关内容

  • 没有找到相关文章

最新更新