javascript - 在对象数组中搜索对象
问题描述
我有以下数组:
const HEROES = [
{ id: 1, name: 'Captain America', squad: 'Avengers' },
{ id: 2, name: 'Iron Man', squad: 'Avengers' },
{ id: 3, name: 'Spiderman', squad: 'Avengers' },
{ id: 4, name: 'Superman', squad: 'Justice League' },
{ id: 5, name: 'Wonder Woman', squad: 'Justice League' },
{ id: 6, name: 'Aquaman', squad: 'Justice League' },
{ id: 7, name: 'Hulk', squad: 'Avengers' },
];
我正在尝试将另一个对象 { id: 5, square: 'Justice League' } 传递到数组中以找到匹配的对象。
例如:
findOne(HEROES, { id: 5, squad: 'Justice League' })
应该返回
{ id: 5, name: 'Wonder Woman', squad: 'Justice League' }
我不确定如何开始,任何帮助将不胜感激。
解决方案
使用find
:
const HEROES = [
{ id: 1, name: 'Captain America', squad: 'Avengers' },
{ id: 2, name: 'Iron Man', squad: 'Avengers' },
{ id: 3, name: 'Spiderman', squad: 'Avengers' },
{ id: 4, name: 'Superman', squad: 'Justice League' },
{ id: 5, name: 'Wonder Woman', squad: 'Justice League' },
{ id: 6, name: 'Aquaman', squad: 'Justice League' },
{ id: 7, name: 'Hulk', squad: 'Avengers' },
];
const findOne = (arr, query) => {
const { id, squad } = query;
return arr.find(({ id: a, squad: b }) => (id != undefined ? a == id : true) && (b != undefined ? b == squad : true));
};
console.log(findOne(HEROES, { id: 5, squad: "Justice League" }));
推荐阅读
- python - python throws:IndentationError:期望一个缩进块
- python - python list iterate,concat性能问题
- r - 如何在隔离环境中测试/开发 R 中的包?也就是说,独立于系统中已经安装的包
- html - Css:随着窗口大小调整图像上下移动
- appcelerator - appcelerator 可以创建 Android-Auto 兼容的应用程序吗?
- javascript - 在 mongodb 的数组中使用 $gt 运算符更新多个对象
- android - 无法在表格布局中设置分隔线颜色
- generics - 如何在 Rust 中编写递归泛型类型?
- c++ - 为向量分配内存
- c# - 尝试创建新表时对象名称无效