Из бэкэнда я получаю элементы к объекту с индексами сортировки (случайное число от 1 до 999) и массив списка элементов с идентификаторами элементов, отсортированных по их индексам, например:
{
items: {
1: {
sort: 131,
name: 'Item 1'
},
2: {
sort: 22,
name: 'Item 2'
},
3: {
sort: 440,
name: 'Item 3'
},
4: {
sort: 80,
name: 'Item 4'
}
},
itemList: [2, 4, 1, 3]
}
Используя пользовательский интерфейс, пользователь может изменить порядок элемента, который отражается в массиве itemList. После нажатия кнопки «Сохранить» в пользовательском интерфейсе мне нужно правильно переназначить существующие индексы сортировки и отправить в бэкэнд только элементы, индекс которых был изменен. Так, например, если пользователь установил item 2
для второй позиции itemsList будет [4, 2, 1, 3]
, а данные, отправленные на сервер, должны быть:
{
2: {
sort: 80
},
4: {
sort: 22
}
}
Если пользователь установит item 2
в четвертый элемент itemList, то будет [4, 1, 3, 2]
, а данные, отправленные на сервер, должны быть:
{
1: {
sort: 80
},
2: {
sort: 440
},
3: {
sort: 131
},
4: {
sort: 22
}
}
Как мне добиться этой функциональности?