我正在尝试在我的 javascript 应用程序中更多地转向函数式编程。我目前使用库 ramda 作为基础库。
我的愿望:
- 创建一个函数 removeUserFromList(username, list),它返回列表中与用户名不匹配的项目。
- 使实现尽可能短,尽可能依赖 Ramda 库中现有的函数。
条件:
包含嵌套用户对象的列表:
[{
providers: {
github: {
login: "username1"
}
}
},
{
providers: {
github: {
login: "username2"
}
}
}]
迄今为止取得的成绩:
var list = [{providers: {github: {login: "username1"}}},
{providers: {github: {login: "username2"}}}];
var getLoginName = R.useWith(R.path('providers.github.login'));
var isLoginNameEq = R.useWith(R.eq, getLoginName);
isLoginNameEq(list[0], "username1") // => true
//From this point on I am totally clueless,
//but I believe I should combine these functions
//with R.reject in some way.
Plunkr 演示:
http://plnkr.co/edit/1b5FjxV3Tcgz7kozW1jX
问题:
有没有更适合的函数来实现类似于 R.eq 但在嵌套对象(可能是 R.pathEq)上的东西?