На части какого размера надо порезать объект:
const chunkSize = 10;
.
Режем:
const arr = [];
let i = -1;
for (const k in obj) {
const j = (++i / chunkSize) | 0;
(arr[j] = arr[j] || {})[k] = obj[k];
}
или
const chunked = (arr, chunkSize) =>
Array.from(
{ length: Math.ceil(arr.length / chunkSize) },
(n, i) => arr.slice(i * chunkSize, (i + 1) * chunkSize)
);
const arr = chunked(Object.keys(obj), chunkSize).map(n => {
return n.reduce((acc, k) => (acc[k] = obj[k], acc), {});
});
или
function* chunked(data, chunkSize) {
const iter = data[Symbol.iterator]();
for (let chunk = [], n = {}; !n.done && (n = iter.next());) {
if ((n.done && chunk.length) || chunk.push(n.value) === chunkSize) {
yield chunk;
chunk = [];
}
}
}
const arr = Array.from(chunked(Object.entries(obj), chunkSize), Object.fromEntries);