数组是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()。
1 宝宝出生后,对周围的环境一无所知。他还不能自主地控制身体和思想,他不会说话表达。所以对他来说,只有玩耍才能使他完全忘我地把注意力集中到环境中的他感兴趣的事物上,并运用自己的肢体、感官、大脑去探索它,不断重复,直到他完全掌握才转向下一个目标。渐渐地,他的运动能力增强了,感受能力丰富敏锐了,思维能...
拆分了一下鹅厂工资构成,根据岗位和水平,基本工资再19k-22k,18薪,每个月房补4k,股票也是分等级6-22万,分两年发,签字费3w。这样算下来,低的有40万,高的有60万。上管拿40万的这种叫白菜价; 有以下几方面的原因: 1、最需要的不是经验,而是创新。 比如金融、地产行...
相信大家都很熟悉平台盈利的逻辑。基本上开通了创作者身份后就可以发表作品了,有了播放量就有收益了。不过,这部分钱也不是那么容易拿到的。对于新手来说,最不可控的就是根本不知道自己发哪种视频,播放量才会高,所以很多新手做自媒体,基本上不到7天就放弃了。 那么有没有什么活动只要发布视频就能赚到钱的? 答...
电商行业的发展极大的改变了我们的购物习惯,其中一部分的买家可从中看到了商机,纷纷选择在淘宝平台上面开店,但是开店是需要有货源的。那么淘宝开店怎么找货源?淘宝店铺货源怎么找?1.实 电商行业的发展极大的改变了我们的购物习惯,其中一部分的买家可从中看到了商机,纷纷选择在淘宝平台上面开店,但是开店是需要...
第一,Keywordseverywhere是一个SEO关键字研究工具,可以在多个网站上显示有用的谷歌关键字搜索量和每次点击费用数据。此工具可以帮助您省去从各种网站复制数据的麻烦, 第一,Keywords everywhere是一个SEO关键字研究工具,可以在多个网站上显示有用的谷歌关键字搜索量和每...
互联网发展迅速,许多企业都有自己的网站,网站的运营就需要去推广,那么下面为大家讲解一下网络推广的方法,希望对大家有帮助。1,搜索引擎推广法。seo技术在网络推广中已经广泛应用,利用 互联网发展迅速,许多企业都有自己的网站,网站的运营就需要去推广,那么下面为大家讲解一下网络推广的方法,希望对大家有帮...
微信目前严打的就四个方面;频繁加人;外挂软件;用户投诉和违法信息。当然,还有非常严重的连坐效应。所以,养好自己的号,至关重要,今天先和大家说说加人方式和他的上限规则。通讯录导入加人 微信目前严打的就四个方面;频繁加人;外挂软件;用户投诉和违法信息。当然,还有非常严重的连坐效应。所以,养好自己的号,...
现在很多人都在做公众号迁移,有些人觉得这没必要,不明白为什么会有这么多人要做这个。其实吧,见仁见智,首先公众号申请太方便了,人手就可以申请一个,但是后期想做大,那么肯定要做一些”脱 现在很多人都在做公众号迁移,有些人觉得这没必要,不明白为什么会有这么多人要做这个。其实吧,见仁见智,首先公众号申请太...
“抖音第一网红”又换人了。3月底,“疯狂小杨哥”终于超过“刘德华”,成为粉丝量Top1的抖音网红。截至目前,疯狂小杨哥的抖音粉丝量达7242万。(统计不包括“人民日报”“央视新闻” “抖音第一网红”又换人了。 3月底,“疯狂小杨哥”终于超过“刘德华”,成为粉丝量Top1的抖音网红。截至目前,疯狂...
养兰花,3种肥交替使用,长势旺盛、叶子浓绿在养兰花的过程中,经常会有花友在给兰花施肥问题上遇到困扰,不知道该给兰花施什么肥,又该如何去合理的施肥。兰花长得旺盛,叶色浓绿,正常开花,才具观赏价值,这就需要平时做到合理的水肥 养兰花,3种肥交替使用,长势旺盛、叶子浓绿 在养兰花的过程中,经常会有花友...
奥粒绒容易起静电吗是很多人在关注的,毕竟奥粒绒作为时下较为火热的面料之一,想必大家再逛直播间和小红书的时候都有它的推荐,但由于秋冬季节很多衣服都有静电,所以这个话题成了焦点,下面小编就和大家一起看看奥粒绒有静电是不是假的 奥粒绒容易起静电吗是很多人在关注的,毕竟奥粒绒作为时下较为火热的面料之一,想...
樱桃核是比较常见的一种果核,它含有多种营养成分,适量食用对身体有一定的好处,可以起到很好功效与作用,比如健脑安神、消肿止痛以及解毒活血等,用法用量也是有一定讲究的,最好在医生的指导下服用。樱桃核的功效与作用樱桃石主要分布 樱桃核是比较常见的一种果核,它含有多种营养成分,适量食用对身体有一定的好处,...
2019微单相机排行 微单相机销量排行? 微单作为目前相机市场最热门的机型,受到了消费者们的普遍关注。虽然手机拍摄性能越来越强,但是选购微单的也大有人在。今天我们就给大家带来了,京东商城微单销量排行榜TOP5。要知道在竞争激烈的微单市场要成为销量前五名的产品可不是容易事,必须具备很...
成都好吃的川菜馆排名 人均消费成都食客(奎星楼店) 地址:奎星楼街8号 成都人说:特色烤茄子很好吃。加上秘制酱料,味道鲜美爽口。 成都的食客不是传统的川菜餐厅,而是迎合许多年轻人喜爱的创新江湖餐厅。成都的两家分店每天都排着长队,可以说是成都最受欢迎的餐厅之一。 成都人最喜欢的十家川菜...
窦性心律不齐是心脏的一种反射图,一般在进行心电图检查时,很多年轻人都会检查出窦性心律不齐。那么,窦性心律不齐是心脏病早期吗?窦性心律不齐需要治疗吗?一起来看看久久派带来的详细介绍吧!窦性心律不齐是心脏病早期吗窦性心律不齐 窦性心律不齐是心脏的一种反射图,一般在进行心电图检查时,很多年轻人都会检查出...