首页 > 解决方案 > 将分组对象数组平均分成两个

问题描述

所以假设我有一个看起来像这样的数组:

var addresses = [[{house: "231 Main", id: "someID"},
                  {house: "233 Main", id: "someID"}],
                 [{house: "440 10th Street", id: "someID"},
                  {house: "443 10th Street", id: "someID"},
                  {house: "450 10th Street", id: "someID"}],
                 [{house: "440 11th Street", id: "someID"}]]

如何根据嵌套数组中的计数将此二维数组拆分为两个稍微平衡的数组?因此,从一个包含三个子数组的数组(总共六个项目)到两个数组,每个数组包含一个总共三个项目的子数组。

标签: javascriptarrayssplit

解决方案


使用 展平子数组[].concat,并使用 将其拆分为两个子数组slice

const addresses = [[{house: "231 Main", id: "someID"},
                  {house: "233 Main", id: "someID"}],
                 [{house: "440 10th Street", id: "someID"},
                  {house: "443 10th Street", id: "someID"},
                  {house: "450 10th Street", id: "someID"}],
                 [{house: "440 11th Street", id: "someID"}]]

const flattened = [].concat(...addresses)
const length = flattened.length

const result = [
  flattened.slice(0, Math.floor(length/2)),
  flattened.slice(Math.floor(length/2))
]

console.log(result)


推荐阅读