根据 JavaScript 中的另一个对象数组过滤对象数组

2023-12-08

我有一个像这样的数组

arr1 =
[
   {A: 'red', B: 'blue'},
   {Q: 'green', R: 'blue'},
   {B: 'green', M: 'red'},
   {Q: 'white', R: 'blue'},
   ...
]

每个对象都有两个键/值对,一个字母和颜色。我有另一个像这样的数组

filter=
[
   {A: 'val', B: 'someval'},
   {B: 'anothervalue', M: 'value'}
]

是否可以过滤第一个数组,使得最终结果是一个仅包含与第二个数组具有相同键的对象的数组。 (没有 for 或 while 循环)

在这种情况下,它将是:

[
   {A: 'red', B: 'blue'},
   {B: 'green', M: 'red'}
]

所以我想要这样的东西:

let filteredArr = arr1.filter(obj => 
    Object.keys(obj) == Object.keys(filter[someKey]));

但我不知道如何在不循环所有键的情况下执行此操作filter.


你可以使用Set获取属性名称并过滤数组。

var array = [{ A: 'red', B: 'blue' }, { Q: 'green', R: 'blue' }, { B: 'green', M: 'red' }, { Q: 'white', R: 'blue' }],
    filter = [{ A: 'val', B: 'someval' }, { B: 'anothervalue', M: 'value' }],
    getKey = o => Object.keys(o).sort().join('|'),
    result = array.filter((s => o => s.has(getKey(o)))(new Set(filter.map(getKey))));
   
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据 JavaScript 中的另一个对象数组过滤对象数组 的相关文章

  • Google Analytics API - 跟踪子域

    我有一个网站 每个用户都注册为子域 username domain com 我正在使用以下代码跟踪所有子域 var gaq gaq gaq push setAccount UA XXXXXX X gaq push setDomainName
  • 在 `data:` URI 中转义 SVG 的正确方法?

    Chrome 最近已启动使用换行符阻止 URL 和 lt 人物 https www chromestatus com features 5735596811091968 我维护的应用程序严重依赖数据 URI 中的 SVG 图像 data i
  • 在原子操作中测试和递减?

    我刚刚发现了一个恼人的错误 它基本上是一个竞争条件 为了便于论证 我们假设一个非常简单的文档结构 例如 id XXX amount 100 集合中存在数百个这样的文档 并且由多个编写器访问 这些编写器有效地尝试将数量降低任何值 但绝不会低于
  • 为什么我在 ECMAScript / ActionScript 3 中看到不精确的浮点结果?

    大家好 让我们直接跳到代码示例 以展示 ECMAScript JavaScript AS3 如何无法正确执行简单的数学运算 AS3 对 Number 类使用 IEEE 754 双精度浮点数 据说与JavaScript 中使用的 trace
  • 如何使单词中的每个字母在悬停时发生变化

    假设我的网站上某个段落中有一个单词 IamGreat 我希望它在悬停时更改为 Good4you 但是 我不想更改整个单词 而是希望每个字母单独更改 因此 如果我将鼠标悬停在字母 I 上 它将变成字母 G 字母 r 将变成数字 4 等 这两个
  • 在java中将DataURL图像转换为图像文件

    我在我的 java servlet 中接收图像 DataURL 它看起来像 data image jpeg base64 9j 4AAQSkZJRgABAQAAAQABAA 我需要将其另存为图像文件 我该怎么做 The simplest w
  • jQuery 或 JavaScript 中的“$”符号是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中 符号的含义是什么 https stackoverflow com questions 1150381 what is the meaning of sign in javas
  • 如何使用ckeditore通过ajax发送数据?

    我在 django 中有一个表格 这是 撰写邮件 形式 我将此表单从视图发送到我的模板 然后应用 ckeditor 来更改正文样式 我希望通过 ajax 发布此表单 当使用 ckeditor 时 body 字段的值不会随 request P
  • 将压缩的json数据存储在本地存储中

    我想将 JSON 数据存储在本地存储中 有时存储的数据可能超过 5MB 每个域的浏览器允许的最大阈值 无论如何 我可以压缩或压缩数据并将其存储在本地存储中吗 如果对大数据进行每个 JS 函数的压缩和解压 会增加多少延迟 我正在使用这个 js
  • 是否有 IE 渲染完成事件?

    在尝试确定页面加载时间为 20 秒的原因时 我发现 IE8 中有一些奇怪的行为 场景是这样的 我进行 ajax 调用 它返回并且回调看起来像这样 StoreDetailsContainer html tableHtml var StoreD
  • 使用 php 和 symfony 从数组创建 Excel 文件

    我正在尝试使用 PHP 和 symfony 将数组导出为 XLS 文件 如下面的代码所示 创建 XLS 文件后 我只能获取数组的最后一行 并且它显示在文件的第一行中 似乎 lignes 变量没有增加 我不明白出了什么问题 有人可以帮忙吗 f
  • Powershell - 将字符串拆分为由开始和结束字符串划分的数组

    我有一个多行字符串 来自 json 例如 somekey somevalue somekey somevalue somekey somevalue somekey somenumber somekey null 我想将字符串拆分为一个数组
  • 为什么 "asdf".replace(/.*/g, "x") == "xx" ?

    我偶然发现了一个令人惊讶的 对我来说 事实 console log asdf replace g x Why two替代品 似乎任何没有换行符的非空字符串都会产生此模式的两个替换 使用替换函数 我可以看到第一个替换是整个字符串 第二个替换是
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • Qcut Pandas:ValueError:Bin 边缘必须是唯一的

    我使用 Pandas 中的 Qcut 将数据离散化为大小相等的存储桶 我想要有价格桶 这是我的数据框 productId sell prix categ popularity 11997 16758760 0 28 75 50 524137
  • 将 MathJax 脚本添加到 Office 365 Sharepoint 中的页面

    我正在尝试将 Mathjax 库添加到 SharePoint 库 以便我们可以使用 LaTex 语法来添加方程 我在网上搜索时看到了多种方法 但似乎没有一种方法可以与最新版本的 MathJax 和 Office 365 版本的 ShareP
  • 使 div 的大小与其内部图像的大小相同

    我有一个带有以下代码的div HTML div img src img logo png div CSS div imgContainer width 250px height 250px padding 13px 问题是用户可以编辑图像大
  • 使用js获取选择选项的onclick事件

    我有一个非常令人沮丧的问题 我有这个代码 它过滤掉我的结果并将它们输入到选择框中 var syn
  • Chrome 上的 contenteditable 中未显示编辑光标

    当您打开此页面时 请参阅现场演示 http jsfiddle net gs3p1a6r 3 show 与 Chrome span span CSS myspan border 0 outline 0 JS myspan focus the
  • 如何在jsp页面中包含javascript

    我是 J2EE 和 Web 开发的新手 这是我的问题 我想在网页中包含 angular js 这是有效的版本 但我也想要一些本地的 javascript 文件 并且希望我想在本地目录中导入 angularjs

随机推荐

  • 如何将 perfmon 插件与 jmeter-maven-plugin 一起使用?

    我目前正在开发一个基于 jmeter 的项目 使用 jmeter maven 插件运行测试 到目前为止 一切正常 直到我添加了 perfmon 插件 添加它们以使用 jmeter UI 获取每秒事务数和随时间变化的响应时间 按照说明进行操作
  • 如何解决 IE 不支持 :after 的问题?

    我有一堆清单 ul li class first Item 1 li li Item 2 li li class last Item 3 li ul 风格与 li after content li last after content 这一
  • 如何在 C++ 中编译位于不同文件中的模板?

    当我将所有源代码放入一个文件中时 程序就成功构建了 但是 当我将它们拆分为头文件时 出现链接错误 我的程序的主要内容 C Class Templates cpp include
  • 仅在 Android 中首次启动时显示设置屏幕

    我正在制作一个 Android 应用程序 但我不知道如何使设置屏幕仅在第一次出现 这就是应用程序的工作方式 用户在安装后启动应用程序并显示欢迎 设置屏幕 一旦用户完成设置 设置屏幕将永远不会再次出现 除非用户重新安装应用程序 我怎样才能做到
  • iOS 照片权限要求第二次

    我目前正在使用 aasset 这是第一次请求许可 如果想第二次或每次用户阻止它时弹出权限 这怎么可能 没有办法第二次显示权限提示 处理权限提示的最好方法是在触发权限提示之前向用户解释 阅读 AssetsLibrary框架中的call方法 如
  • 如何将多个(excel)文件读入R? [复制]

    这个问题在这里已经有答案了 我有数百个中等大小的 Excel 文件 5000 到 50 0000 行 大约 100 列 要加载到 R 中 它们具有明确定义的命名模式 例如x 1 xlsx x 2 xlsx etc 如何以最快 最直接的方式将
  • ADT 插件更新后使用某种库的所有 Android 项目都会抛出 ClassNotFoundException [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我正在使用 Eclipse 我在之后就面临这个问题谷歌
  • 为什么空格会影响相等字符串的同一性比较? [复制]

    这个问题在这里已经有答案了 我注意到 向相同的字符串添加空格会使它们使用时比较不相等is 而非空间版本比较相等 a abc b abc a is b outputs True a abc abc b abc abc a is b outpu
  • 更改 UINavigationItem 颜色

    我需要为 UINavigationBar 按钮设置自定义颜色 我正在做以下事情 RGB func 是一个定义 void viewWillAppear BOOL animated for UIView view in self navigat
  • Windows Phone 7 中的样式触发器

    我想使用 Windows Phone 7 中的样式触发器来根据布尔变量更改图像的源 我想做这样的事情
  • 使用 Javascript 关闭所有弹出窗口

    有谁知道如何在Javascript中关闭所有弹出窗口 由javascript弹出的窗口 Example 单击打开 3 个新窗口 按钮 并使用 window open 来 打开所有 3 个新窗口 单击一个按钮并关闭所有 3 个按钮 一起弹出窗
  • 右值引用和左值引用有什么区别? (代码生成)

    从较低级别的角度来看 r 值参考是什么样的 我似乎无法理解它 我可以查看从右值引用与左值引用生成的代码 等效的 C 或 x86 x64 示例吗 例如 这个构造会是什么样子 我们暂时假设没有复制省略 vector
  • Request.IsAuthenticated 始终返回 false

    我正在努力向我正在构建的站点添加登录功能 但登录后 Request IsAuthenticated 属性始终返回 true 我搜索了这个错误并一遍又一遍地找到相同的答案 但这些解决方案对我不起作用 来自 AccountController
  • Android:在 ConstraintLayout 中保留全宽和未定义高度 ImageView 的比例?

    In a ConstraintLayout an ImageView与其父级绑定的方式如下 它的左侧绑定到屏幕的左侧 它的右侧绑定到屏幕的右侧 它的顶部绑定到小部件的底部 它的底边绑定到屏幕的底边 Thus my ImageView看起来是
  • .Value = .Value 的作用与 VBA 中的 Evaluate() 函数类似吗?

    考虑以下片段 它将相同的公式写入两个单元格A1 and A2 Sub Main With Range A1 Formula 1 1 End With With Range A2 Formula 1 1 Value Value End Wit
  • 日期之间的差异

    我想计算两个时间之间的差异 其中一个是当前时间 另一个是 HH MM 格式 始终是未来时间 如果我只是从 now 中减去 futuretime 它当然应该是一个正数 这工作正常 直到 如果 now 是下午或晚上 而 futuretime 是
  • PHP按位左移32位问题以及大数算术运算的不良结果

    我有以下问题 第一 我试图对一个大数进行 32 位按位左移 并且由于某种原因该数字总是按原样返回 例如 echo 516103988 lt lt 32 echoes 516103988 因为将位向左移动一位相当于乘以 2 所以我尝试将数字乘
  • 错误:来自角度控制器的 [ng:areq]

    这是一个很遥远的事情 但是以前有人见过这个错误吗 我正在尝试使用 Express Angular 和 mongoDB 添加 传输器 每当我访问由传输控制器控制的页面时 我都会收到此错误 Error ng areq http errors a
  • 如何正确配置node.js以使用自签名根证书?

    所以 在绝望的路上 我想知道是否有人在某个地方可以帮助我配置nodejs以接受根CA自签名 我需要它才能通过使用 TLS 的节点获取来访问开发中的自定义 API 环境 操作系统 Ubuntu 20 04 作为虚拟机中的来宾 Windows
  • 根据 JavaScript 中的另一个对象数组过滤对象数组

    我有一个像这样的数组 arr1 A red B blue Q green R blue B green M red Q white R blue 每个对象都有两个键 值对 一个字母和颜色 我有另一个像这样的数组 filter A val B