数组元素排序后的如何比较

假设现在有个数组的数据渲染在页面的,let arr1 = ['aa','bb','cc'];
如果前端点击选中了arr1 数组中的 'cc' 元素,这时候要请求一次后端接口,
后端返回let arr2 = ['cc','bb','aa']; 这样一列数组给前端,把前端选中的"cc"元素与原本"aa"调换一个位置,使选中的元素都放在0下标了。

针对于后端又重新排了的数组元素的位置,有什么办法可以让前端发生点击事件选中的元素的位置任然不会发生变化?

请教下各位大佬有什么好的方法

阅读 2.6k
4 个回答

大致思路

方法1:设置两个数组
一个orginal记录第一次获取的数组,控制页面渲染
一个changing记录随时变化的后端返回的数组,用于其他用途
方法2:将位置信息存放到对象里

var data = [
    {
        position:1,
        value: 'aa'
    },
    {
        position:2,
        value: 'bb'
    },
    {
        position:3,
        value: 'cc'
    }
]

点击'cc'之后请求后端接口
后端返回新的数组之后直接交换对象数组中的相应的对象的位置
根据position顺序渲染页面

随机顺序怎么控制? 跟后端约定一下,以什么顺序展示,强制排队。

页面渲染是前端控制的 你不以后端返回的渲染不就可以了吗?

同楼上,和后台沟通是最好的解决办法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题