这种分页滚动加载如何处理?-灵析社区

爱打瞌睡的三角龙

这个函数 addToResult 接受两个参数:要添加的数据数组 dataArray 和要添加的数据数量 dataCount。它会将数据填充到 group 数组的 children 数组中,保证数组的长度与 count 属性相符。在填充完成后,函数将返回填充好的结果数组。 let group = [ { label: "a", count: 25 }, { label: "b", count: 3 }, { label: "c", count: 4 }, ]; function addToResult(dataArray, dataCount) { let result = JSON.parse(JSON.stringify(group)); result.forEach((item) => { item.children = []; }); let totalDataToAdd = dataCount; let index = 0; while (totalDataToAdd > 0) { if (index >= result.length) { index = 0; } let availableSpace = result[index].count - result[index].children.length; if (availableSpace > 0) { let dataToAdd = Math.min(availableSpace, totalDataToAdd); totalDataToAdd -= dataToAdd; for (let i = 0; i < dataToAdd; i++) { result[index].children.push(dataArray.shift()); } } index++; } return result; } const dataToPush = new Array(10).fill("data"); let result = addToResult(dataToPush, 10); console.log("result after pushing 10 items:", result); result = addToResult(dataToPush, 10); console.log("result after pushing another 10 items:", result); result = addToResult(dataToPush, 10); console.log("result after pushing another 10 items:", result); result = addToResult(dataToPush, 2); console.log("result after pushing another 2 items:", result);

阅读量:1

点赞量:0

问AI