数组是JavaScript编程中最常用的结构之一,这也是为什么了解它的内置方法很重要。
在本文中,我们研究一下如何在 JS 中将数组拆分为n个大小的块。
具体来说,主要研究两种方法:
slice()方法是提取数组块,或者将其切成块的最简单方法:
slice(start, end) 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。
注意:start和end都可以是负整数,这仅表示它们是从数组末尾枚举的。-1是数组的最后一个元素,-2是倒数第二个,依此类推…
因此,要将列表或数组分割成偶数块,我们使用slice()方法
function sliceIntoChunks(arr, chunkSize) {
const res = [];
for (let i = 0; i < arr.length; i += chunkSize) {
const chunk = arr.slice(i, i + chunkSize);
res.push(chunk);
}
return res;
}
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(sliceIntoChunks(arr, 3));
运行结果:
[[ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ], [ 10 ]]
在上面的代码中,我们通过遍历数组并按每个chunkSize对其进行切片,将arr分解成大小为3的小块。在最后一次迭代中,只剩下一个元素(10),所以它自己就组成一个块。
即使splice()方法看起来与slice()方法相似,但其用法和副作用却大不相同。我们仔细来看看:
// splice 做以下两件事:
// 1. 删除从 startIdx 开始的 deleteCount 元素
// 2. 将提供的新元素(newElem1, newElem2…)插入到myArray中,以索引startIdx开始
// 该方法的返回值是一个包含所有已删除元素的数组
myArray.splice(startIdx, deleteCount, newElem1, newElem2...)
let arrTest = [2, 3, 1, 4]
let chunk = arrTest.splice(0,2)
console.log(chunk) // [2, 3]
console.log(arrTest) // [1, 4]
我们通过一个代码示例来实际了解这一点:
function spliceIntoChunks(arr, chunkSize) {
const res = [];
while (arr.length > 0) {
const chunk = arr.splice(0, chunkSize);
res.push(chunk);
}
return res;
}
const arr = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(spliceIntoChunks(arr, 2));
运行结果:
[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 7, 8 ] ]
在这里,我们使用while循环遍历数组。在每次迭代中,我们执行拼接操作,并将每个块添加到结果数组中,直到原始数组中不再有其他元素为止(arr.length> 0)。
需要注意的非常重要的一点是splice()会更改原始数组。如slice()创建原始数组的副本,因此原始数组不会有任何更改。
在本文中,我们介绍了在 JS 中将列表分割为多个块的几种简单方法。在此过程中,我们学习了如何使用几个内置的数组方法,如slice()和splice()。
阵法是玩家和伙伴一起配合不同的站位来对抗各种怪物团的系统,是大话神仙的战斗乐趣之一,10种不同的阵法随着玩家主角的等级提升而逐步开放,阵法在提供不同站位的同时还可以给玩家提供相应阵法带来的额外属性加成效果和队伍先攻值。玩家可以在游戏中获得阅历奖励,并提升阵法奇术 1 天阵 是最早开放的阵法,提升天...
1 问 如果是人工繁殖的蟹苗,应询问蟹苗的日龄、饵料投喂情况、淡化处理过程以及池内蟹苗的密度。饲养管理较好的蟹苗,日龄一般在4~5天,经过4~5天的淡化处理后,池内蟹苗的密度较大,且比较活跃。如果购买的是天然蟹苗,则要了解蟹苗捕捞的天数及淡化处理情况;如未经淡化处理千万不要购买。 2 称 将准备出...
对于不怎么用电脑的朋友来说,每天给自己的笔记本电脑开机两小时能可以让我们的电脑寿命更长,有很多朋友问windows10怎么设置定时开机?其实针对电脑windows10设置定时开机的方法还是比较简单的,那么win10电脑自动开机怎么设置呢?接下来小编给大家介绍电脑windows10系统设置定时...
现在很多人都在做公众号迁移,有些人觉得这没必要,不明白为什么会有这么多人要做这个。其实吧,见仁见智,首先公众号申请太方便了,人手就可以申请一个,但是后期想做大,那么肯定要做一些”脱 现在很多人都在做公众号迁移,有些人觉得这没必要,不明白为什么会有这么多人要做这个。其实吧,见仁见智,首先公众号申请太...
闲鱼是阿里巴巴旗下闲置交易平台。使用淘宝或支付宝账户登录,无需经过复杂的开店流程,即可达成包括一键转卖个人淘宝账号中“已买到宝贝”、自主手机拍照上传二手闲置物品、以及在线交易等诸多 闲鱼是阿里巴巴旗下闲置交易平台。使用淘宝或支付宝账户登录,无需经过复杂的开店流程,即可达成包括一键转卖个人淘宝账号中...
转眼一个月又过去了,2022年已经过去一半。按照惯例,今天芝麻科技讯更新一下手机CPU天梯图。本月芯片厂商发布的新处理器不多,所以文章相对简单一些,手机CPU天梯图2022年6月最新版来了,快来看看都有哪些新变 转眼一个月又过去了,2022 年已经过去一半。按照惯例,今天芝麻科技讯更新一下手机CP...
猕猴桃是生活中比较常见的一种水果,它含有多种营养成分,适量食用对身体有一定好处。孕妇也是可以吃猕猴桃的,可以补充维生素以及其他微量元素等,孕妇吃猕猴桃一天吃一两个比较好,不建议一次吃五个。猕猴桃孕妇一天吃几个最好1-2个 猕猴桃是生活中比较常见的一种水果,它含有多种营养成分,适量食用对身体有一定好...
朋友圈广告投放,优秀的朋友圈广告文案是用户能否点击的关键,甚至直接关乎到用户的购买欲望。那么如何写出高转化率朋友圈广告文案呢?你需要把握好这4个方面。1、创意文案内容要真实切忌夸大其词,不要写那些一看就是糊弄人的东西,基 朋友圈广告投放,优秀的朋友圈广告文案是用户能否点击的关键,甚至直接关乎到用户...
十月初一送寒衣是很多北方地区都有的习俗,但由于该节日作为四大鬼节之一,所以很多讲究都会出现在我们生活中,因此农历十月初一为什么要早回家成了大家都在问的,下面小编就和大家一起看看农历十月初一是鬼节吗。农历十月初一为什么要早 十月初一送寒衣是很多北方地区都有的习俗,但由于该节日作为四大鬼节之一,所以很...
客厅里的红木家具能不能随便摆是很多人好奇的,毕竟客厅作为家中比较重要的场景之一试,大家对该事的每个节点都尤为的关注,下面小编就和大家一起看看红木家具怎么摆放在客厅最好。客厅里的红木家具能不能随便摆不能。现在的社会,大家的 客厅里的红木家具能不能随便摆是很多人好奇的,毕竟客厅作为家中比较重要的场景之...
购置税减半政策是今年下半年推出的,已经有不少人都了解过了,但是近期打算买车的朋友们,可能还是不太了解购置税减半的意思。那么,购置税减半是直接优惠还是买车后返?一起来看看久久派带来的详细介绍吧!购置税减半30万是指导价还是 购置税减半政策是今年下半年推出的,已经有不少人都了解过了,但是近期打算买车的...
手机备份软件其实很简单。 操作方法 01下载一个360卫士,有的朋友可以直接打开。 02打开软件后,点击软件管理。 03进入软件管理后,点击软件卸载 04进入后再点击你要备份的软件,如图。 05最后就备份成功了。...
参数上的不同。 操作方法 01红米Note拥有5.5英寸大屏,相比4.7英寸的红米手机和红米1S电信版屏幕更大 02小米红米 1S电信版手机性能上还是可以和红米Note媲美的。 03像素更为出色 04小米红米 池,相比红米手机和红米1S内置的2000mAh容量电池更为出众...
奶粉能不能带上客车,奶粉可以带上客车吗。小编带你了解更多相关信息。 1、长途汽车站婴儿奶粉能过安检机。妈妈们不用担心安检机或安检门对食物产生辐射。一个物体的辐射主要看其自身的含量和成分,水果等食物不会因为X射线的照射产生残留,更谈不上累积伤害。一些鲜态包装食品反而就是通过射线,如伽马射线,进行...
鸭蛋保存方法及注意事项,鸭蛋保存方法及注意事项是什么。小编带你了解更多相关信息。 1、鸭蛋和鸡蛋一样也是一头大一头小,所以存放鸭蛋时要把大的一头朝上放小的一头处于下面,因为鸭蛋有气室所以可以让蛋黄上浮后贴近气室,这样既保证鸭蛋的质量也可以防止微生物进入蛋黄。 2、夏天温度高是微生物快速繁衍的...