【发布时间】:2019-06-12 23:12:32
【问题描述】:
我有 2 个数组。每个都充满了唯一的识别号码。我要取第一个数组
array1 = [
{"name":"sos", "id":112},
{"name":"apa", "id":671},
{"name":"dos", "id":003},
]
并根据每个 ID 值使其顺序与 array2 的顺序匹配。这样 array1 的每个 id 都等于 array2 ,反之亦然。换句话说,对于每个小于或等于数组长度的 x 值,array1[x].id == array2[x].id。
array2 = [
{"name":"sqe", "id":671},
{"name":"pep", "id":003},
{"name":"try", "id":163},
]
我还想删除 array1 中没有在 array2 中对应 id 的任何元素。并将任何 id 值不在 array1 中但在 array2 中的元素添加到 array1 中,同时再次根据其 ID 号对其进行排序。 Array1 必须保留与每个 id 值相关联的名称,但是当添加新元素时,它的名称可以设置为与 array2 相关联的 id 的名称。
如果不遇到可能会打乱我的订单的特殊情况,我似乎无法决定如何实现这一目标。
【问题讨论】:
-
您的符号在语法上不正确,但您的意思很清楚。
-
第 1 步:从
array1创建一个Map将 id 映射到对象。 -
另外,您的
array2不包括数组 1 中的所有 id 值。
标签: javascript arrays sorting