javascript - 过滤两个数组

标签 javascript lodash

我有以下一组数组,

var records = [{ 'id': 'ee31ee6a-7f95-49fb-a02f-2a9ef36c2f8b', 
'name': 'Test', 'type': 'user' },
{ 'id': 'ee31ee6a-7f95-49fb-a02f-2a9ef36c2f8b', 
'name': '9300731e-3c97-4719-8dc2-fcf0a29fd770', 'type': 'register' },
{ 'id': 'ee31ee6a-7f95-49fb-a02f-2a9ef36c2f8b', 
'name': '9300731e-3c97-4719-8dc2-fcf0a29fd772', 'type': 'register' },
];

var registration = [
{ 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd770', 'id': '123', 'index': '9300731e-3c97-4719-8dc2-fcf0a29fd770'}, 
{ 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd772', 'id': '456', 'index': '9300731e-3c97-4719-8dc2-fcf0a29fd770'}, 
{ 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd771', 'id': '789' 'index': '9300731e-3c97-4719-8dc2-fcf0a29fd776'}];

并想要以下输出

result = [
{ 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd770', 'id': '123'}, 
{ 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd772', 'id': '456'}]

我基本上希望根据记录数组中的名称属性过滤注册数组,因为我需要注册数组中的 id 值。

是否可以使用 lodash 库中的方法组合来获得所需的输出?

最佳答案

您可以使用 _.intersectionBy

var records = [{ 'id': 'ee31ee6a-7f95-49fb-a02f-2a9ef36c2f8b', 'name': 'Test', 'type': 'user' }, { 'id': 'ee31ee6a-7f95-49fb-a02f-2a9ef36c2f8b', 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd770', 'type': 'register' }, { 'id': 'ee31ee6a-7f95-49fb-a02f-2a9ef36c2f8b', 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd772', 'type': 'register' }],
    registration = [{ 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd770', 'id': '123', 'index': '9300731e-3c97-4719-8dc2-fcf0a29fd770'}, { 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd772', 'id': '456', 'index': '9300731e-3c97-4719-8dc2-fcf0a29fd770'}, { 'name': '9300731e-3c97-4719-8dc2-fcf0a29fd771', 'id': '789', 'index': '9300731e-3c97-4719-8dc2-fcf0a29fd776'}],
    result = _.intersectionBy(registration, records, "name");

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

关于javascript - 过滤两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40463152/

相关文章:

javascript - D3.js 4 与 AngularJS 1.5(组件或指令?)

javascript - 使用 sammy 设置 knockout 可观察值以进行路由

javascript - 使用 Lodash 根据值从 json 获取对象

javascript - groupBy 和 sortBy 原生 ES6 中的对象数组

angularjs - 如何在 Protractor 测试中使用 lodash _.find?

javascript - 如何在 Cypress Automation 的 CKeditor (v4) 中添加/键入文本?或者在 Cypress Automation 中设置 Ckeditor 值的任何方法?

javascript - HTML页脚未固定在移动设备页面的底部

javascript - 在 ChromeDriver 中缩小网页

javascript - 删除数组项列表

reactjs - 如何在 React 项目中全局导入某些内容(仅一次)