gpt4 book ai didi

javascript - 通过 Ramda.js 复合 AND 条件拒绝数组项

转载 作者:行者123 更新时间:2023-11-30 09:12:02 25 4
gpt4 key购买 nike

我想使用 Ramda.js拒绝数组项。

有必要删除项目,该项目有两个等于 0 的 Prop 。是否可以使用普通的 Ramda.js 函数在没有 lambdas 的情况下做到这一点?

我希望收到名称为 A、B、C 的项目(除了 D,其中 accbal 都等于 0),但我的示例返回 A, C

const arr = [
{
name: 'A',
acc: 1,
bal: 2,
},
{
name: 'B',
acc: 3,
bal: 0,
},
{
name: 'C',
acc: 0,
bal: 4,
},
{
name: 'D',
acc: 0,
bal: 0,
}
]

const filteredItems = R.reject(
R.and(
R.propEq('acc', 0),
R.propEq('bal', 0)
)
)(arr)

这是 Ramda REPL to test my example

提前感谢您的帮助!

最佳答案

在 Ramda 库中,R.and 方法返回一个 bool 值,相比之下,R.reject 方法期望使用一个可迭代对象来循环遍历提供的数组。您可以使用 R.allPass 方法实现此目的。此方法采用谓词数组(如 R.propEq)并返回使用“AND”逻辑组合它们的谓词。

R.reject(
R.allPass([
R.propEq('acc', 0),
R.propEq('bal', 0)
])
)(arr);

注意:如果你想使用“或”逻辑,你可以使用R.anyPass代替。

关于javascript - 通过 Ramda.js 复合 AND 条件拒绝数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57885184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com