JS 生成具有给定数量和幻灯片计数的数组子集

问题描述 投票:0回答:1

我正在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']]
javascript reactjs frontend slider carousel
1个回答
0
投票

您可以以所需的

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; }

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.