两个数组,数组的每一项互相组合

第一个数组

[
  {
    "platCode": "ERP",
    "platName": "ERP"
  },
  {
    "platCode": "EC",
    "platName": "电商系统"
  },
  {
    "platCode": "MPS",
    "platName": "中台"
  }
]

第二个数组

[
  {
    "itemCode": "AM#010399160",
    "itemName": "赠品",
    
  },
  {
    "itemCode": "AM#01109970",
    "itemName": "赠品内裤",
    
  },
  {
    "itemCode": "AM#01117070",
    "itemName": "赠品内裤",
    
  }
]

我现在想把这两个数组变成3x3的结果,该怎么做?

结果

[
  {
    "platCode": "ERP",
    "platName": "ERP",
    "itemCode": "AM#010399160",
    "itemName": "赠品"
  },
  {
    "platCode": "ERP",
    "platName": "ERP",
    "itemCode": "AM#01109970",
    "itemName": "赠品内裤"
  },
  {
    "platCode": "ERP",
    "platName": "ERP",
    "itemCode": "AM#01117070",
    "itemName": "赠品内裤"
  },
  {
    "platCode": "EC",
    "platName": "电商系统",
    "itemCode": "AM#010399160",
    "itemName": "赠品"
  },
  {
    "platCode": "EC",
    "platName": "电商系统",
    "itemCode": "AM#01109970",
    "itemName": "赠品内裤"
  },
  {
    "platCode": "EC",
    "platName": "电商系统",
    "itemCode": "AM#01117070",
    "itemName": "赠品内裤"
  },
  {
    "platCode": "MPS",
    "platName": "中台",
    "itemCode": "AM#010399160",
    "itemName": "赠品"
  },
  {
    "platCode": "MPS",
    "platName": "中台",
    "itemCode": "AM#01109970",
    "itemName": "赠品内裤"
  },
  {
    "platCode": "MPS",
    "platName": "中台",
    "itemCode": "AM#01117070",
    "itemName": "赠品内裤"
  }
]
已解决 悬赏分:40 - 解决时间 2022-01-17 08:13
反对 0举报 0 收藏 0

回答3

最佳
  • @
    const cartesian = (a, b) => a.reduce((res, an) => res.concat(b.map(bn => Object.assign({}, an, bn))), [])

    image.png

    支持 0 反对 0 举报
    2022-01-16 14:36
  • @
    arr1.map(e=>{return arr2.map(e2=>{return {...e2,...e}})}).flat()
    支持 0 反对 0 举报
    2022-01-16 15:03
  • @

    来个最简单的实现

    const func = (a, b) => {
      const result = []
      a.forEach(aItem => {
        b.forEach(bItem => {
          result.push({
            ...aItem, ...bItem,
          })
        })
      })
      return result
    }
    支持 0 反对 0 举报
    2022-01-16 15:27