我正在reactJS中创建自定义滑块,我正在为其创建一个函数来生成预期输出,该函数需要 sliderItems(保存数组列表),slider count(变量名称'spliceCount')以及如何使用许多项目应该slide(变量名称“slideBy”)。
假设我有一个函数,它采用 array、splice-count 和 slipBy 等三个属性,并根据 splice-count 和 slipby 返回数组的子集。 截至目前,通过以下函数,我可以生成输出,如下面的代码片段所示。
const list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'];
const spliceCount = 3;
const slideBy = 2;
function getSusetofArray(array, splice, slide) {
const arrayList = [...array];
const subsetList = [];
while(arrayList > 0) {
subsetList.push(arrayList.splice(0, splice));
}
return subsetList;
}
console.log(getSusetofArray(list, spliceCount, slideBy));
// current output with above function
[['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K']]
但是,在 spliceCount 和 slipBy 的帮助下的预期需要如下所示
expected output = [['A', 'B', 'C'], ['C', 'D', 'E'], ['E', 'F', 'G'], ['G', 'H', 'I'], ['I', 'J', 'K'], ['K']]
您可以以所需的
slide
增量进行迭代,并按 splice
长度对数组进行切片。
function getSusetofArray(array, splice, slide) {
const
result = [];
for (let i = 0; i < array.length; i += slide) {
result.push(array.slice(i, i + splice));
}
return result;
}
const
list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'],
spliceCount = 3,
slideBy = 2;
console.log(getSusetofArray(list, spliceCount, slideBy));
.as-console-wrapper { max-height: 100% !important; top: 0; }