javascript - 将数组与对象数组匹配并获取值
问题描述
我是 JS 新手。我有一个如下所述的对象数组,并且我有一个包含值的数组。我是否可以描述预期的输出?
var jsObjects = [
{a: 1, b: 2},
{a: 3, b: 4},
{a: 5, b: 6},
{a: 7, b: 8}
];
var myArray = [4,6,8]
Output: [3,5,7]
解决方案
您可以使用 anew Map()
来存储键值对,其中b
是您的键,a
是您的值。之后,您可以使用您构建的映射将值数组转换为值.map()
数组b
:a
const jsObjects = [
{a: 1, b: 2},
{a: 3, b: 4},
{a: 5, b: 6},
{a: 7, b: 8}
];
const myArray = [4,6,8];
const search = new Map(jsObjects.map(({a, b}) => [b, a]));
const res = myArray.map(v => search.get(v));
console.log(res);
推荐阅读
- python - SessionNotCreatedException:消息:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 74,尽管安装了 Chrome v74
- c# - 将 ApplicationUser GUID Id 从操作链接传递到控制器
- c# - nUnit 无法加载 System.Data.Linq
- wordpress - ERR_SPDY_PROTOCOL_ERROR 尝试了一切
- apache-kafka - 断开连接后卡夫卡消费者重新连接
- php - $user 的mysql_real_escape_string() 函数在PhP 脚本中,发誓要求做如何修复它?
- javascript - multer中cb的空参数是什么?
- docker - Docker 将主机目录安装为具有正确 SELinux 标签的只读目录
- javascript - 如何在 javascript 文件中使用 JSON.stringify() 从 node.js 中检索对象?
- swift - 限制swift中的字符数