Разбиение массива сгруппированных объектов на два равномерно

1

Поэтому давайте скажем, что у меня есть массив, который выглядит так:

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"}]]

Как я могу разбить этот 2d-массив на два несколько сбалансированных массива на основе подсчетов внутри вложенных массивов? Поэтому переходим от наличия одного массива, содержащего три вспомогательных массива, в общей сложности шесть элементов для двух массивов, каждый из которых имеет вспомогательные массивы с общим количеством трех элементов.

  • 1
    У вас есть одна пропущенная скобка в этом коде. Кроме того, посмотрите на reduce .
Теги:
arrays
split

1 ответ

2
Лучший ответ

сгладить подмассивы с помощью [].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)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню