2019-12-18
描述
传入一个 predicate
函数和一个 prop
字符串,然后使用柯里化函数将通过属性调用检查的 object
传递给 predicate。
提示
- 获取
obj
对象中的prop
值 - 将获取的值传递给已提供好的
predicate
函数 - 最终返回该函数的真假值
代码
const checkProp = (predicate, prop) => obj => !!predicate(obj[prop]);
示例
检测对象的长度是否为 4:
const lengthIs4 = checkProp(l => l === 4, 'length');
lengthIs4([]); // false
lengthIs4([1, 2, 3, 4]); // true
lengthIs4(new Set([1, 2, 3, 4])); // false (Set uses Size, not length)
检测对象 user 属性值中的 active 是否为真且 disabled 是否为假:
const session = { user: {} };
const validUserSession = checkProp(u => u.active && !u.disabled, 'user');
validUserSession(session); // false
session.user.active = true;
validUserSession(session); // true
检测对象的是否包含 length 属性:
const noLength = checkProp(l => l === undefined, 'length');
noLength([]); // false
noLength({}); // true
noLength(new Set()); // true
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于