我有一个静态的集合。我希望每次都按值检查任何匹配,值会改变。
现在我有:
var isOk = R.any(item => item.test(value), items);
我想要的是什么:
将功能存储在其他地方并将其称为:
var isOk = checkMatch(value);
有什么想法吗? THX。
更新 我正在寻找Ramda方式的解决方案。有关changind的东西调用R .__
的顺序答案 0 :(得分:2)
将其包裹在一个需要value
的封闭中。
var isOk = (value) => R.any(item => item.test(value), items);
var isOk_foobar = isOk('foobar');
答案 1 :(得分:1)
我不确定您的测试项目是否可以使用正则表达式 字符串,但如果是,你可以尝试这样的事情:
const anyMatch = curry((regexes, val) => any(regex => test(regex, val), regexes))
const testFiles = anyMatch([/test\/(.)+\.js/i, /\.spec\.js/i])
testFiles('foo.js') //=> false
testFiles('test/foo.js') //=> true
testFiles('foo.spec.js') //=> true
这看起来很干净,而且非常符合Ramda的精神。如果你想让它无点,你可以这样做:
const anyMatch = useWith(flip(any), [identity, flip(test)])
但我觉得可读性要低得多。对我而言,无点是一种值得使用的工具,当它提高了可读性时,并避免它什么时候没有。
您可以在 Ramda REPL 上看到这一点。