Es6: создать массив объектов из json - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть json в следующем формате.

    [
    {"id": 1, 
    "name": "peter" },
    {"id": 2, 
    "name": "john" },
    {"id": 3, 
    "name": "justin" }
    .
    .
    {"id": 500, 
"name": "david" },
    ]

Я пытаюсь создать массив партиями по 10 в следующем формате

[
{
 {"id": 1, 
        "name": "peter" },
.
.
 {"id": 10, 
        "name": "nixon" },
},

{
 {"id": 11, 
        "name": "nancy" },
.
.
 {"id": 20, 
        "name": "underwood" },
}
.
.
]

Я пытался использовать Reduce ипопытался зациклить цикл, но безуспешно

1 Ответ

0 голосов
/ 13 ноября 2018

Вот демо.

const str = "abcdefghigklmnopqrstuvwxyz";
let data = [];
for(let i = 0; i < 26; i++){
  data.push({id : i, name: str.charAt(i)});
}

let res = data.reduce((acc, d) => {
  let groupId = Math.floor(d.id / 10);
  acc[groupId] = acc[groupId] || {};
  acc[groupId][d.id] = d;
  return acc;
 }, {});
console.log(Object.values(res));

Если вы можете быть уверены, что id совпадает с их позицией в массиве, я думаю, что просто slice будет лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...