是否可以使用下划线通过多个值过滤数组值? [英] Is it possible to filter array values by multiple values by using underscore?

查看:50
本文介绍了是否可以使用下划线通过多个值过滤数组值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下数组值:

[
   {
     id: 1,
     field: 'map'
   },
   {
     id: 2,
     field: 'dog'
   },
   {
     id: 3,
     field: 'map'
   }
]

我需要找出字段等于 dog map 的元素。我知道我可以使用 _。filter 方法并传递一个迭代器函数,但我想知道的是是否有更好的解决方案来解决这个问题我可以传递搜索字段和可能的值。有人可以提供更好的方法吗?

I need to find out elements with field equals dog and map. I know I could use the _.filter method and pass an iterator function, but what I want to know is whether or not there's a better solution to this issue where I could pass search field and possible values. Could someone provide a better way of doing so?

编辑:

我可以使用以下方法:

_.where(array, {field: 'dog'})

但在这里我只能检查一个子句

But here I may check only one clause

推荐答案

_.filter(data, function(item){ return item.field === 'map' || item.field === 'dog'; })

如果你想创建一个接受字段的函数它看起来像这样:

If you want to create a function which accepts field and values it can look like this:

function filter(data, field, values) {
    _.filter(data, function(item){ return _.contains(values, item[field]); })
}

这篇关于是否可以使用下划线通过多个值过滤数组值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆