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

第一个数组

[
  {
    "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": "赠品内裤"
  }
]
阅读 3k
3 个回答
const cartesian = (a, b) => a.reduce((res, an) => res.concat(b.map(bn => Object.assign({}, an, bn))), [])

image.png

arr1.map(e=>{return arr2.map(e2=>{return {...e2,...e}})}).flat()

来个最简单的实现

const func = (a, b) => {
  const result = []
  a.forEach(aItem => {
    b.forEach(bItem => {
      result.push({
        ...aItem, ...bItem,
      })
    })
  })
  return result
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题