javascript - 如何在 lodash 中使用数组过滤条件来对抗对象?

标签 javascript arrays object ecmascript-6 lodash

如何在lodash中过滤object ageist another object?但是条件对象是数组..

var form = { type: ['xyz', 'abc'], name: 'pre-1' }

var items = [
 { type: 'xyz', name: 'pre-1' },
 { type: 'abc', name: 'pre-1' }, 
 { type: 'xyz', name: 'pre-2' }, 
]

const results = lodash.filter(items, form);

结果应该是xyzabc:

results = [{ type: 'xyz', name: 'pre-1' }, { type: 'abc', name: 'pre-1' }]

我可以使用 filter 方法做些什么吗?

最佳答案

好吧,您可以在 lodash 中使用自定义过滤器方法。尝试以下:

var form = { type: ['xyz', 'abc'], name: 'pre-1' }

var items = [
 { type: 'xyz', name: 'pre-1' },
 { type: 'abc', name: 'pre-1' }, 
 { type: 'xyz', name: 'pre-2' }, 
]

let filtered = _.filter(items, (item)=>{
    return form.type.indexOf(item.type) >= 0 && form.name == item.name
});

console.log(filtered);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

关于javascript - 如何在 lodash 中使用数组过滤条件来对抗对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56394721/

相关文章:

javascript - 使用 onclick 更改 PHP 变量并回显该变量

javascript - 通过 Javascript 调用 SQLite 时 Firefox 出错

java - 在 python 中使用它们将 2 个参数从 Java 传递到 Python

java - 从 Fragment 发送数据到 MainActivity

object - 如何获取特定 cdi session 范围 bean 的所有实例

javascript - 如何 append 最新的 html 文件,而不是从缓存中

javascript - 如何在每次调用函数时检查 if/else 语句 (JavaScript)?

arrays - GSON 阵列,错误消息 : Expected a string but was BEGIN_ARRAY

javascript - _.差异但允许重复

javascript - 为什么javascript中的数字键总是排序到开头?