<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let arr1 = [
{ id: 1 },
{ id: 1 },
{ id: 2 },
{ id: 3 },
{ id: 3 },
{ id: 4 },
{ id: 5 },
{ id: 5 }
]
let arr2 = [
[{ id: 1 }, { id: 1 }],
[{ id: 2 }],
[{ id: 3 }, { id: 3 }],
[{ id: 4 }],
[{ id: 5 }, { id: 5 }]
]
function format(arr) {
let res = {}
for (let i = 0; i < arr.length; i++) {
if (!res[arr[i].id]) res[arr[i].id] = []
res[arr[i].id].push(arr[i]);
}
return Object.values(res)
}
console.log(format(arr1));
console.log(JSON.stringify(format(arr1)) == JSON.stringify(arr2));
</script>
</body>
</html>