Думаю, вам нужно что-то вроде этого:
- Вы обновляете порядок элементов
- Вы их сортируете
- Вы обновляете значения порядка
const data = [{
i: 1,
order: "no order"
}, {
i: 2,
order: 4
}, {
i: 3,
order: 2
}, {
i: 4,
order: "no order"
}];
function printData() {
data.forEach(x => console.log(x.i, x.order));
}
function changeOrderAndSort(index, order) {
data[index].order = order;
printData();
data.sort((a, b) => a.order - b.order);
console.log("--")
printData();
for (let i = 0; i < data.length; i++) {
data[i].order = i;
}
console.log("--")
printData();
}
changeOrderAndSort(3, 2);