Найти элемент, который изменил свою позицию в массиве
У меня есть массив, представляющий элементы HTML, которые можно перетаскивать, и поэтому порядок можно изменить. Допустим, перед событием перетаскивания есть массив:
let oldArr =
[{id: 'id1'}, {id: 'id2'}, {id: 'id3'}, {id: 'id4'}, {id: 'id5'}, {id: 'id6'}]
и после перетаскивания и изменения порядка одного элемента (скажем, перетаскивание элемента
let newArr =
[{id: 'id1'}, {id: 'id2'}, {id: 'id5'}, {id: 'id3'}, {id: 'id4'}, {id: 'id6'}]
Как можно было решить, какой элемент был перенесен на новую позицию, сравнивая старый и новый массив?
Обратите внимание, что если изменены только два элемента, расположенных рядом друг с другом, невозможно решить, какой из этих двух элементов был на самом деле перетянут — в этом случае не имеет значения, какой из этих двух элементов будет результат.
1 ответ
Используйте элементы до и после целевого элемента (соседей), чтобы определить, какой элемент (ы) переместился (переместился). Вы можете уточнить логику, чтобы она более соответствовала вашей ситуации: