我在带有ramda库的JavaScript中有功能代码。我想要一个通用函数hasNChars并动态传递参数n。我无法执行R.any(hasNChars(10), words),因为该函数已评估。

那么有什么方法可以通过某种方式传递n参数的值?

var R = require('ramda');

let words = ['forest', 'gum', 'pencil', 'wonderful', 'grace',
    'table', 'lamp', 'biblical', 'midnight', 'perseverance',
    'adminition', 'redemption'];

let hasNChars = (word, n=3) => word.length === n;

let res = R.any(hasNChars, words);

console.log(res);

最佳答案

距离您很近,您只需要创建一个带N的函数即可立即进行求值,而无需输入word,因此N值在最终求值范围内。
let hasNChars = (n=3) => (word) => word.length === n;
用法:let res = R.any(hasNChars(10), words);
默认值为n = 3的用法:let res = R.any(hasNChars(), words);

09-16 16:52