首页 > 解决方案 > 使用lodash在javascript中查找两组数据之间的匹配

问题描述

我有两个数据列表,我想将每个元素与使用lodashlistA的值进行比较。listB

例子:

var listA = ["Y", "A", "Z", "T"];
var listB = [{id:15467, value:"E"}, {id:23453, value:"A"}, {id:76564, value:"O"}, {id:86543, value:"T"}];

一次取一个元素listA并找到 的匹配值listB。如果为真,则返回 的对象listB

result = [{id:23453, value:"A"}, {id:86543, value:"T"}]

希望你能帮我?

标签: javascriptarraysobjectlodash

解决方案


你可以使用_.filterwith _.includes

var listA = ["Y", "A", "Z", "T"],
    listB = [{ id: 15467, value: "E" }, { id: 23453, value: "A" }, { id: 76564, value: "O" }, { id: 86543, value: "T" }],
    result = _.filter(listB, ({ value }) => _.includes(listA, value));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>


推荐阅读