let tab = [1, 2, 3, -1, 6, 6, 1, 2, 2, 1];
let i = 0;
while (i < tab.length) {
let j = i + 1;
while (j < tab.length) {
if (tab[i] === tab[j]) {
// Swap elements
[tab[i + 1], tab[j]] = [tab[j], tab[i + 1]];
i++;
}
j++;
}
i++;
}
[ 1, 1, 1, -1, 6, 6, 2, 2, 2, 3 ]
let groups = tab.reduce((acc, num) => {
acc[num] = acc[num] || [];
acc[num].push(num);
return acc;
}, {});
let result = [].concat(...Object.values(groups));
console.log(result);
┌─────────┬────────┐
│ (index) │ Values │
├─────────┼────────┤
│ 0 │ 1 │
│ 1 │ 1 │
│ 2 │ 1 │
│ 3 │ 2 │
│ 4 │ 2 │
│ 5 │ 2 │
│ 6 │ 3 │
│ 7 │ 6 │
│ 8 │ 6 │
│ 9 │ -1 │
└─────────┴────────┘