我的数据页面分页显示,每次显示5条数据,如果有一页数据不满5条,只有一条,下次刷新的时候,拿到了7条数据,怎样调用一次setdata把7条的前四条放到上一页的数组里,剩下的三条才放在新的一页的数组?因为后的返回数据的时候会把当前页剩余的数据和下一页的数据一起返回,下面是我的实现方式,但是这样写太繁琐了,小程序的数据路径能不能向设置属性一样的去设置,像这样:setDataModel.['product[' + (Number(that.data.pageIndex)) + '][1]']=[];这样就可以在循环里拼接了
const data = JSON.parse(rspn.data.Content);
const newPageData = [];
for (var i = that.data.product[that.data.pageIndex].length; i < data.length; i++) {
newPageData[i - that.data.product[that.data.pageIndex].length] = data[i];
}
if (data.length > 0) {
var setDataModel = {};
if (that.data.product[that.data.pageIndex].length == 1) {
if (data.length == 1) {
setDataModel = {
['product[' + (Number(that.data.pageIndex)) + '][1]']: data[0]
};
} else {
if (data.length == 2) {
setDataModel = {
['product[' + (Number(that.data.pageIndex)) + '][1]']: data[0],
['product[' + (Number(that.data.pageIndex)) + '][2]']: data[1]
};
} else {
if (data.length == 3) {
setDataModel = {
['product[' + (Number(that.data.pageIndex)) + '][1]']: data[0],
['product[' + (Number(that.data.pageIndex)) + '][2]']: data[1],
['product[' + (Number(that.data.pageIndex)) + '][3]']: data[2]
};
} else {
if (data.length == 4) {
setDataModel = {
['product[' + (Number(that.data.pageIndex)) + '][1]']: data[0],
['product[' + (Number(that.data.pageIndex)) + '][2]']: data[1],
['product[' + (Number(that.data.pageIndex)) + '][3]']: data[2],
['product[' + (Number(that.data.pageIndex)) + '][4]']: data[3]
};
} else {
setDataModel = {
['product[' + (Number(that.data.pageIndex)) + '][1]']: data[0],
['product[' + (Number(that.data.pageIndex)) + '][2]']: data[1],
['product[' + (Number(that.data.pageIndex)) + '][3]']: data[2],
['product[' + (Number(that.data.pageIndex)) + '][4]']: data[3],
['product[' + (Number(that.data.pageIndex) + 1) + ']']: newPageData
}
}
}
}
}
}
一般分页处理的话,每次显示5条数据前提下,每次返回的数据集也不会大于5条记录
这个分页逻辑 没看懂呀
分页没有做好,后端应该处理好再返回给前端
比如第一次获取到了5条数据,先存数组A,在用数组A来遍历,放在一个二维数组B里面
第二次获取1条数据,存数组A,此时数组A有6条,遍历存二维数组B,五个为一组
第三次获取7条,继续存数组A,此时数组A有11条,遍历数组A存数组B,五个为一组
//第一次
ArrayA:[data1,data2,data3,data4,data5]
ArrayB:{
1:[data1,data2,data3,data4,data5]
}
//第二次
ArrayA:[data1,data2,data3,data4,data5,data6]
ArrayB:{
1:[data1,data2,data3,data4,data5]
2:[data6]
}
//第三次
ArrayA:[data1,data2,data3,data4,data5,data6,...,data12]
ArrayB:{
1:[data1,data2,data3,data4,data5]
2:[data6,data7,data8,data9,data10]
3:[data11,data12]
}
里面有一个diff方法,专门用来对比数据更新用的