Him*_*mel 1 javascript functional-programming ramda.js
我是使用Ramda.js的新手,我想知道如何根据指定的属性过滤对象。
看R.filter
,似乎_.filter
只传递对象值,而不传递属性。例如,REPL中给出的示例:
var isEven = (n, prop) => {
console.log(typeof prop);
// =>
// undefined
// undefined
// undefined
// undefined
return n % 2 === 0;
}
R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}
Run Code Online (Sandbox Code Playgroud)
如果我有以下对象:
const obj = {a: 1, b: 2, c: 3};
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
const filterProp = (x) => /* some filter fn */;
filterProp('b')(obj);
// => {a: 1, c: 3};
Run Code Online (Sandbox Code Playgroud)
如何使用Ramda过滤对象的属性?
深入研究Ramda文档后,我发现R.omit可以满足我的特定用例。
const obj = {a: 1, b: 2, c: 3};
R.omit(['b'], obj);
// => {a: 1, c: 3};
Run Code Online (Sandbox Code Playgroud)