javascript - 使用元素数组过滤对象数组
问题描述
有一个对象数组
var objArray = [{name: orange, id: 1},{name : apple, id:2},{name: banana, id:3},{name: grapes, id:4}]
和一个 id 的数组
var arrId = [1,4]
如何过滤以从对象数组中获取匹配 id 的相应对象?
预期的:
var result = [{name: orange, id: 1}, {name: grapes, id:4}]
试过:
objArray.filter(o => o.id === arrId);
解决方案
你可以检查一下Array#includes
。
var objArray = [{ name: 'orange', id: 1 }, { name: 'apple', id: 2 }, { name: 'banana', id: 3 }, { name: 'grapes', id: 4 }],
arrId = [1, 4],
result = objArray.filter(o => arrId.includes(o.id));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- reactjs - 如何测试使用 instance() 方法访问的函数的值
- symfony - 如何在 symfony 中修改 endblock 内容
- ios - UIView(不是 UIViewController)是否有任何 viewDidAppear 方法?
- owl-carousel - 引导模式中的猫头鹰轮播第一次显示所有图像,然后猫头鹰轮播正常工作
- angular7 - 在 Angular 7 中,重新加载页面时出现 404 错误
- android - 无法将 retrifit2 响应中的异常清除为“JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING”
- angular - 使用命名路由器出口导航到子路由
- c# - 带有 JSON API 调用的操作方法给出 500 错误
- java - 如何使破解 apk 文件成为一项艰巨的任务?
- node.js - 异步/等待不返回已解决的承诺