问题描述
前端数据结构如下
let array = [
{name:"香蕉",order:0},
{name:"橘子",order:1},
{name:"苹果",order:2},
{name:"梨",order:3},
{name:"葡萄",order:4}
]
根据元素的order来进行展示,展示结果如下:
香蕉 橘子 苹果 梨 葡萄
现在前端将香蕉放到梨和葡萄之间(将某个元素放到其他两个元素之间),展示结果变为:
橘子 苹果 梨 香蕉 葡萄
(前端非常好处理)服务端如何保存这一步操作?
我的想法(服务端操作)
将order<=3的元素的order-1,然后将香蕉的order变为3,
抽象出来就是:元素之前的index为x,之后的index为y,如果y>x,则x<m<=y的元素order-1。
如果y<x,则y<=m<x的元素的order+1。
请教
我这种做法是不是太暴力了,数据量大的时候感觉不妥,有没有更优雅的解决办法?