Javascript 函数中间的注入值
如果我想定义一个函数来过滤与给定值匹配的集合,我可以写:Javascript 函数中间的注入值,javascript,ramda.js,Javascript,Ramda.js,如果我想定义一个函数来过滤与给定值匹配的集合,我可以写: const{filter,equals}=R 常量数据=[1,2,3,4,5] 常量filterDataFor=x=>filter(等于(x),数据); console.log(filterDataFor(2)) 您可以做的是在过滤器中放置一个简单的占位符,而不是equals(u u),然后简单地将它们与equals组合在一起: const{filter,equals,_uu,compose}=R 常量数据=[1,2,3,4,5] c
const{filter,equals}=R
常量数据=[1,2,3,4,5]
常量filterDataFor=x=>filter(等于(x),数据);
console.log(filterDataFor(2))
您可以做的是在过滤器中放置一个简单的占位符,而不是equals(u u)
,然后简单地将它们与equals组合在一起:
const{filter,equals,_uu,compose}=R
常量数据=[1,2,3,4,5]
const filterDataFor=compose(filter(_u,data),等于);
console.log(filterDataFor(2))
您考虑过使用吗
返回第一个参数中没有值的新列表。R.equals用于确定相等
没有([2],[1,2,3,4,5]);
//=> [1, 3, 4, 5]
它也适用于多个值:
没有([2,5],[1,2,3,4,5]);
//=> [1, 3, 4]
安德拉斯·西蒙答案的一个变体是翻转过滤函数,使谓词成为第二个参数
const{filter,equals,flip,compose}=R
常量数据=[1,2,3,4,5]
常量filterDataFor=compose(翻转(过滤器)(数据),等于);
console.log(filterDataFor(2))
如果我写了const foo=bar()
,你希望我能写foo()
?@YannickK这取决于bar()
是否返回了一个函数?例如,如果const-bar=x=>y=>true
那么是的,我希望您能够编写foo()
,当const-foo=bar()。不过,我可能完全误解了占位符