我正在努力在reactJS中创建自定义的滑动块,我正在为此创建一个函数来生成预期的输出,该函数需要sliderItems(保存数组列表)、slider count(变量名"spliceCount")以及应该包含多少项slide(变量名"slideBy ').

假设我有一个函数,它接受像array, splice-count and slideBy这样的三个属性,并根据拼接计数和滑动返回给我数组的子集. 到目前为止,通过下面的函数,我能够生成如下片段所示的输出.

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.length > 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和slideBy的帮助下,期望值需要像下面一个一样

expected output = [['A', 'B', 'C'], ['C', 'D', 'E'], ['E', 'F', 'G'], ['G', 'H', 'I'], ['I', 'J', 'K'], ['K']]

推荐答案

您可以以所需的offset增量进行迭代,并将数组切片size长度.

function getSubsetOfArray(array, size, offset) {
    const
        result = [];
        
    for (let i = 0; i < array.length; i += offset) {
        result.push(array.slice(i, i + size));
    }

    return result;
}

console.log(getSubsetOfArray(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'], 3, 2));
.as-console-wrapper { max-height: 100% !important; top: 0; }

Javascript相关问答推荐

我不明白这个react 组件有什么问题

使用AJX发送表单后,$_Post看起来为空

使用复选框在d3.js多折线图中添加或删除线条

如何修复(或忽略)HTML模板中的TypeScript错误?'

colored颜色 检测JS,平均图像 colored颜色 检测JS

如何在输入元素中附加一个属性为checkbox?

如何在ASP.NET JavaScript中使用Google Charts API仅对绘制为负方向的条形图移动堆叠条形图标签位置

如何修复我的数据表,以使stateSave正常工作?

同一类的所有div';S的模式窗口

在开发期间,Web浏览器如何运行&qot;.jsx&qot;文件?

Rxjs流中生成IMMER不能在对象上操作

Reaction Redux&Quot;在派单错误中检测到状态Mutations

在JS中动态创建对象,并将其追加到HTML表中

图表4-堆叠线和条形图之间的填充区域

在查看网页时,如何使HTML中的按钮工作方式类似于鼠标上的滚轮或箭头键?

处理TypeScrip Vue组件未初始化的react 对象

我不知道如何纠正这一点.

AG-GRIDreact 显示布尔值而不是复选框

更新文本区域行号

在此div中添加一个类,并在一段时间后在Java脚本中将其删除