javascript - 如何使用多个函数来过滤 javascript 中的数组?
问题描述
我想在 generalFilter 中使用 filter1 和 filter2 函数,但我无法理解在 Javascript 中执行此操作的正确语法。
const filter1 = (
array
) => {
return array.filter((parameter, index) => {
return (
!parameter.isOptional()
);
});
};
const filter2 = (
array
) => {
return array.filter((parameter, index) => {
return (
!parameter.isEmpty()
);
});
};
const filterGeneral = (
array
) => {
return array.filter(filter1(array) && filter2(array));
};
这是大约。我正在尝试做的事情,但我无法成功,而且我不喜欢我的逻辑。有没有办法正确地做到这一点?
解决方案
您可以使用管道函数,在其中获取一些函数并将第一个函数的结果作为第二个函数的输入,依此类推。
const
pipe = (...functions) => input => functions.reduce((acc, fn) => fn(acc), input),
filter1 = array => array.filter((parameter, index) => !parameter.isOptional()),
filter2 = array => array.filter((parameter, index) => !parameter.isEmpty()),
filterGeneral = pipe(filter1, filter2),
array = [{ ... }, { ... }],
result = filterGeneral(array);
推荐阅读
- java - spring-boot-admin,版本和信息未显示
- django - 注册用户登录后如何在 Web 应用中实现 JWT 认证?
- arduino - 错误在'{'标记之前不允许函数定义:对于teensy 3.2 arduino
- r - 如何通过条件从列中创建表格?
- java - java正则表达式模式用空格“xxxx xxx xxx”格式化数字
- javascript - Javascript:如何在 // 和之前获取字符串的子字符串
- scikit-learn - 在用复合内核拟合 GuassianProcessRegressor 之后,我们可以只使用内核的一部分进行预测吗?
- html - 如何在 ReactJS 中选择一个空目录?
- android - 我如何使用 shape drawable 在 android 中制作这个形状
- c# - UWP 应用程序中的 ColorPaletteResources API - 如何通过代码而不是 Xaml 在应用程序资源中设置具有自己颜色的 ColorPaletteResources?