假设现在有个数组的数据渲染在页面的,let arr1 = ['aa','bb','cc'];
如果前端点击选中了arr1 数组中的 'cc' 元素,这时候要请求一次后端接口,
后端返回let arr2 = ['cc','bb','aa']; 这样一列数组给前端,把前端选中的"cc"元素与原本"aa"调换一个位置,使选中的元素都放在0下标了。
针对于后端又重新排了的数组元素的位置,有什么办法可以让前端发生点击事件选中的元素的位置任然不会发生变化?
请教下各位大佬有什么好的方法
假设现在有个数组的数据渲染在页面的,let arr1 = ['aa','bb','cc'];
如果前端点击选中了arr1 数组中的 'cc' 元素,这时候要请求一次后端接口,
后端返回let arr2 = ['cc','bb','aa']; 这样一列数组给前端,把前端选中的"cc"元素与原本"aa"调换一个位置,使选中的元素都放在0下标了。
针对于后端又重新排了的数组元素的位置,有什么办法可以让前端发生点击事件选中的元素的位置任然不会发生变化?
请教下各位大佬有什么好的方法
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答2k 阅读
大致思路
方法1:设置两个数组
一个orginal记录第一次获取的数组,控制页面渲染
一个changing记录随时变化的后端返回的数组,用于其他用途
方法2:将位置信息存放到对象里
点击'cc'之后请求后端接口
后端返回新的数组之后直接交换对象数组中的相应的对象的位置
根据position顺序渲染页面