Разделить объект на куски

1

У меня есть объект:

var object = { '232510350': 672,
'232510352': 672,
'232510353': 672,
'232510356': 672,
'232510358': 672,
'232510359': 672,
'232510360': 672 }

И я хочу разбить его на куски заданного размера следующим образом:

var chunks = [
{'232510350': 672,
'232510352': 672,
'232510353': 672},
{'232510356': 672,
'232510358': 672,
'232510359': 672},
{'232510360': 672}]

Я немного застрял здесь, так как я не могу использовать срез для этого

Вот как я это сделал, но это уродливо. Я просто хотел посмотреть, как это сделать правильно

var temp = {};
var chunks = [];
var chunkSize = 3;
var amount = chunkSize;

for (var i = 0; i < Object.keys(object).length; i++) {
    if (i == chunkSize) {
        chunks.push(temp);
        chunkSize += amount;
        temp = {};
    }

    temp[ Object.keys(object)[i] ] = object[ Object.keys(object)[i] ];

    if (i == Object.keys(object).length - 1) {
        chunks.push(temp);
    }
}
  • 0
    Используйте цикл for чтобы зациклить свойства и скопировать их в результирующие объекты.
  • 0
    @Alue, почему вы не можете использовать ломтик?
Показать ещё 4 комментария
Теги:
object
arrays

1 ответ

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

Итак, вот оно:

var object = { '232510350': 672,
'232510352': 672,
'232510353': 672,
'232510356': 672,
'232510358': 672,
'232510359': 672,
'232510360': 672 }

var values = Object.values(object);
var final = [];
var counter = 0;
var portion = {};

for (var key in object) {
  if (counter !== 0 && counter % 3 === 0) {
    final.push(portion);
    portion = {};
  }
  portion[key] = values[counter];
  counter++
}
final.push(portion);

console.log(final)

Ещё вопросы

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