按值A重复删除2个数组并按值B排序的最有效方法?

问题描述 投票:1回答:1

我有一个包含对象的数组,这些对象具有标识符和排序值。当我正在查询的端点返回带有更新对象的数组时,我需要将其与现有数组合并,传入数组的重复标识符对象优先于现有数组,但它们要彼此并排。例如

arrayA = [A:1, B:4, C:6]

arrayB = [D:2, A:3, C:5, G:7]

result = [D:2, A:3, B:4, C:5, G:7]

到目前为止,我想不出任何解决方案,其中不包括我先对数组进行重复数据删除然后对它们进行排序,这对于我要使用的长列表来说似乎效率很低。解决这个问题的最有效方法是什么?

javascript arrays sorting merge
1个回答
0
投票

您可以执行mergesort使用的常规合并步骤,但可以跳过arrayA中已经在arrayB中的元素。要快速执行此检查,您可以首先将arrayB中的所有ID添加到Set中。这将导致最终运行时间为O(n + m)

© www.soinside.com 2019 - 2024. All rights reserved.