Es6:根据json

时间:2018-11-12 14:13:44

标签: ecmascript-6

我有以下格式的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并尝试for循环遍历它,但未成功

1 个答案:

答案 0 :(得分:0)

这是一个演示。

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会更好。