Ramda:如何根据嵌套数组中的值进行过滤

use*_*301 9 ramda.js

我试图以功能的方式完成这个(与Ramda).我的JSON结构如下

[
    {username: 'bob', age: 30, tags: ['work', 'boring']},
    {username: 'jim', age: 25, tags: ['home', 'fun']},
    {username: 'jane', age: 30, tags: ['vacation', 'fun']}
]
Run Code Online (Sandbox Code Playgroud)

我试图根据'tags'属性中的值进行过滤,但是没有成功.我能够过滤整数/字符串(年龄和用户名),但我无法弄清楚如何使用嵌套数组(标签)中的值.任何帮助将非常感激.

Sco*_*yet 18

有很多方法可以做到这一点.但我认为最干净的是:

R.filter(R.where({tags: R.includes('fun')}))
Run Code Online (Sandbox Code Playgroud)

您可以在Ramda REPL中看到它的实际效果.

其他选项,特别是如果字段嵌套更深,则是compose(或pipe)proppath调用contains或可能利用镜头.

不过,我认为上面的答案最具可读性.