如何根据另一个对象对数组进行排序?

伯格·杜登

我有这些数组:

阵列1:

const arr1 = [
  {_id: "13", qtde: 1, color: "red", size: "100x100"},
  {_id: "16", qtde: 5, color: "green", size: "200x200"},
  {_id: "1", qtde: 3, color: "yellow", size: "300x300"},
  {_id: "23", qtde: 2, color: "purple", size: "500x500"},
  {_id: "3", qtde: 0, color: "orange", size: "200x200"}
]

阵列2:

const arr2 = [
  {_id: "23", name: "Produto-23", price: "48.99"},
  {_id: "13", name: "Produto-13", price: "58.99"},
  {_id: "3", name: "Produto-3", price: "58.99"},
  {_id: "1", name: "Produto-1", price: "58.99"},
  {_id: "16", name: "Produto-16", price: "58.99"}
]

预期产量:

const arr2 = [
  {_id: "13", name: "Produto-13", price: "58.99"},
  {_id: "16", name: "Produto-16", price: "58.99"},
  {_id: "1", name: "Produto-1", price: "58.99"},
  {_id: "23", name: "Produto-23", price: "48.99"},
  {_id: "3", name: "Produto-3", price: "58.99"}
]

可以看出,它们是不同的,但是它们具有相同的属性_id,但顺序不同。我要做的是根据其属性将第二个数组重组为与第一个数组相同的顺序_id

只是要清楚一点,我不想合并数组或更改除第二个数组之外的任何内容。

我考虑过使用Array.sort,但是由于我没有引用属性,所以我不知道如何将其应用于此处。基本思想是使用第一个数组的索引作为参考,因为它不会改变,但我也不知道如何。

我该怎么办?

马杰德·巴达维(Majed Badawi)

您可以.findIndex中使用sort以下内容:

const arr1 = [
  {_id: "13", qtde: 1, color: "red", size: "100x100"},
  {_id: "16", qtde: 5, color: "green", size: "200x200"},
  {_id: "1", qtde: 3, color: "yellow", size: "300x300"},
  {_id: "23", qtde: 2, color: "purple", size: "500x500"},
  {_id: "3", qtde: 0, color: "orange", size: "200x200"}
]
const arr2 = [
  {_id: "23", name: "Produto-23", price: "48.99"},
  {_id: "13", name: "Produto-13", price: "58.99"},
  {_id: "3", name: "Produto-3", price: "58.99"},
  {_id: "1", name: "Produto-1", price: "58.99"},
  {_id: "16", name: "Produto-16", price: "58.99"}
]

const arr2Sorted = arr2.sort((a,b) => {
  const indexOfA = arr1.findIndex(e => e._id === a._id);
  const indexOfB = arr1.findIndex(e => e._id === b._id);
  return indexOfA - indexOfB;
});

console.log(arr2Sorted);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据另一个数组的位置对数组进行排序?

来自分类Dev

如何根据另一个数组的值对数组的值进行排序

来自分类Dev

如何基于另一个对象对数组对象进行排序

来自分类Dev

根据另一个数组的排序顺序对数组进行排序

来自分类Dev

根据另一个数组中定义的排序顺序对数组进行排序

来自分类Dev

根据另一个自定义数组对数组中的对象属性进行排序

来自分类Dev

根据另一个数组的顺序对数组数组进行排序(Ruby)

来自分类Dev

根据另一个数组中的顺序对数组数组进行排序

来自分类Dev

Javascript:根据另一个对象数组对一个对象数组进行排序

来自分类Dev

根据另一个数组按顺序对数组进行排序

来自分类Dev

PHP:根据另一个数组对数组进行排序

来自分类Dev

根据另一个数组对数组进行排序,迅速

来自分类Dev

根据PHP上的另一个数组对数组的元素进行排序

来自分类Dev

根据javascript中的另一个数组对数组进行排序

来自分类Dev

根据另一个数组的顺序对数组进行有效排序

来自分类Dev

在绘制之前根据另一个数组对数组进行排序

来自分类Dev

如何根据JavaScript中的另一个数组对数组排序?

来自分类Dev

根据另一个对象数组的顺序对对象数组进行排序

来自分类Dev

如何使用另一个数组作为模板对数组数据进行排序?

来自分类Dev

如何根据数组中的一个对象对数组进行数值排序?

来自分类Dev

如何根据另一个数组的排序顺序对多个数组进行排序

来自分类Dev

根据另一个键数组对对象数组进行排序

来自分类Dev

根据另一个ID数组对对象数组进行排序

来自分类Dev

根据另一个数组对对象数组进行排序

来自分类Dev

Javascript使用下划线根据另一个数组顺序对数组顺序进行排序

来自分类Dev

CUDA:使用推力根据另一个数组定义的顺序对数组进行排序

来自分类Dev

根据具有重复项的另一个数组的顺序对数组进行排序

来自分类Dev

根据另一个数组中的排序索引对数组重新排序

来自分类Dev

如何根据另一个数组的排序方式对一个数组进行排序?(JavaScript)

Related 相关文章

  1. 1

    如何根据另一个数组的位置对数组进行排序?

  2. 2

    如何根据另一个数组的值对数组的值进行排序

  3. 3

    如何基于另一个对象对数组对象进行排序

  4. 4

    根据另一个数组的排序顺序对数组进行排序

  5. 5

    根据另一个数组中定义的排序顺序对数组进行排序

  6. 6

    根据另一个自定义数组对数组中的对象属性进行排序

  7. 7

    根据另一个数组的顺序对数组数组进行排序(Ruby)

  8. 8

    根据另一个数组中的顺序对数组数组进行排序

  9. 9

    Javascript:根据另一个对象数组对一个对象数组进行排序

  10. 10

    根据另一个数组按顺序对数组进行排序

  11. 11

    PHP:根据另一个数组对数组进行排序

  12. 12

    根据另一个数组对数组进行排序,迅速

  13. 13

    根据PHP上的另一个数组对数组的元素进行排序

  14. 14

    根据javascript中的另一个数组对数组进行排序

  15. 15

    根据另一个数组的顺序对数组进行有效排序

  16. 16

    在绘制之前根据另一个数组对数组进行排序

  17. 17

    如何根据JavaScript中的另一个数组对数组排序?

  18. 18

    根据另一个对象数组的顺序对对象数组进行排序

  19. 19

    如何使用另一个数组作为模板对数组数据进行排序?

  20. 20

    如何根据数组中的一个对象对数组进行数值排序?

  21. 21

    如何根据另一个数组的排序顺序对多个数组进行排序

  22. 22

    根据另一个键数组对对象数组进行排序

  23. 23

    根据另一个ID数组对对象数组进行排序

  24. 24

    根据另一个数组对对象数组进行排序

  25. 25

    Javascript使用下划线根据另一个数组顺序对数组顺序进行排序

  26. 26

    CUDA:使用推力根据另一个数组定义的顺序对数组进行排序

  27. 27

    根据具有重复项的另一个数组的顺序对数组进行排序

  28. 28

    根据另一个数组中的排序索引对数组重新排序

  29. 29

    如何根据另一个数组的排序方式对一个数组进行排序?(JavaScript)

热门标签

归档