【问题标题】:Optimized way to compare single object with array of objects and return matched value object将单个对象与对象数组进行比较并返回匹配值对象的优化方法
【发布时间】:2021-06-25 12:58:40
【问题描述】:

具有多条记录的对象的父数组

const parent = [{name : 'raman', class : 'bca', roll : 3},{school : 'raman2', class: 'bca', phone: 222},{city : 'raman', class: 'bca'},{name : 'daman', pincode: 122, class :'bca'}]

// Child object with a single record
const child = {name : 'daman', class :'bca'}

在父数组和子单个对象中存在 5K 的 obj 列表。

父子记录中的键不相同 什么是优化的比较方式

【问题讨论】:

  • 这能回答你的问题吗? Fastest way to compare 2 objects in js
  • 针对什么进行了优化?速度?内存使用情况?消耗的能量?另外,你在比较什么?你怎么知道孩子属于哪个父母?

标签: javascript arrays performance object


【解决方案1】:

由于您只有一个孩子要比较,并且您必须迭代所有 n 个父对象,如果您不做任何奇怪的事情,您的过滤器将始终在 O(n) 中运行。 5k 个对象应该不是问题。

您可以使用 for 循环或例如做这样的事情:

let matches = parent.filter(p => p.class == child.class);

^^ 我只是猜你想通过类属性来匹配,否则你必须适应你的需要。

【讨论】:

  • 谢谢.. 我也是这么做的,但 p.class 与 child 不完全相同(或多或少的键和值条目),p 应该包含 child 的所有属性
  • 您问题中的示例的结果应该如何?
  • 包含所有子条目的父对象。
猜你喜欢
  • 2020-09-26
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多