javascript - Ramda 拒绝 - 有没有更优雅的方式来写这个?
问题描述
const people = [
{
name: 'bill',
age: 52
},
{
name: 'james',
age: 27
},
{
name: 'james',
age: 17
}
]
const newPeople = R.reject(person => {
return R.includes('jam', person.name)
})(people)
有没有更优雅的Ramda方式来写这个?我希望返回一个数组,该数组删除所有jam
名称中包含字符串的人员对象。
也许像R.reject(R.where(...))
什么?
谢谢!
解决方案
我认为你在正确的轨道上where
。
这对我来说很好读:
const jamless = reject (where ({name: includes ('jam')}))
const people = [{name: 'bill', age: 52}, {name: 'james', age: 27}, {name: 'james', age: 17}]
console .log (
jamless (people)
)
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>
<script> const {reject, where, includes} = R </script>
大声朗读关键字,我们可以听到“reject where name includes 'jam'”,这个问题的英文描述还不错。
如果你想参数化它,它可能只是
const disallow = (str) => reject (where ({name: includes(str)}) )
const jamless = disallow ('jam')
(虽然我很确定我们可以制作 的无点版本disallow
,但我认为没有理由尝试,因为这已经很容易阅读了。)
另请参阅相关答案,https://stackoverflow.com/a/29256202
推荐阅读
- javascript - 解析 JSON 数据,然后将其所有值传递给另一个函数
- mysql - JavaFx应用数据库字体表示问题
- jquery - jQuery Validate:对多个单选按钮有效的规则仅对第一个单选按钮触发
- css - 在 React Typescript 中为按钮组件添加图像背景
- django - Django 指定用于模块的数据库
- grails - 如何将 inList 约束添加到来自不同类的变量中?
- r - Geom_smooth 线未显示在 facet_grid 中的一个面板上
- angular - 不允许的保护路线的替代路线?
- svelte - 如何在使用函数确定状态的变量更改时重新渲染组件?
- javascript - 变量在函数中变灰