根据MDN docs,如果Array.slice(start, end)中的end参数大于序列的长度,它将在序列结束时提取:

如果end大于序列的长度,则切片提取到序列的末尾(arr.length).

我有以下代码:

const a = new Array(30).fill(5)

for (let i = 0; i < a.length; i += 25) {
    const newItems = a.slice(i, 25);
    console.log(newItems)
}

我得到以下输出:

> (25) [5, 5, 5, ... 23 items more]
> []

我希望第二个数组的长度为5,剩余的5个项目将被捕获,但我得到的是一个空array.我不知道为什么,因为a.slice(25, 25)应该给我从索引25开始到数组末尾的项目(因为它的长度小于25).我的理解错在哪里?

推荐答案

beginend表示文档中数组的索引.start是包含的,但end是独占的,因此您try 检索以下范围的切片:[25, 25)从数学Angular 来看,这是一个空集.

您的代码应如下所示:

const a = new Array(30).fill(5)

for (let i = 0; i < a.length; i += 25) {
    const newItems = a.slice(i, i + 25);
    console.log(newItems)
}

Javascript相关问答推荐

togglePopover()不打开但不关闭原生HTML popover'

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

Chart.js 4.4.2,当悬停在一个数据点上时,如何在工具提示中拥有多个数据点/标签?

无法检测卡片重叠状态的问题

在带有背景图像和圆形的div中添加长方体阴影时的重影线

获取Uint8ClampedArray中像素数组的宽度/高度

您能在卸载程序(QtInsteller框架)上添加WizardPage吗?

用JS从平面文件构建树形 struct 的JSON

如何创建返回不带`new`关键字的实例的类

从页面到应用程序(NextJS):REST.STATUS不是一个函数

覆盖加载器页面避免对页面上的元素进行操作

如何将zoom 变换应用到我的d3力有向图?

为什么当我更新数据库时,我的所有组件都重新呈现?

JS Animate()方法未按预期工作

无法读取未定义的属性(正在读取合并)-react RTK

使用jQuery find()获取元素的属性

react -原生向量-图标笔划宽度

有没有办法更改Chart.js 3.x.x中主要刻度的字体?

是否设置以JavaScript为背景的画布元素?

如何阻止外部脚本进入顶层导航