数组是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 红烧肉,最解馋的一道菜。制作方法不复杂,其制作的关键点是烧炖的时间。没有一个多小时的烧炖,就烧不出软糯的口感。现在正是桂花盛开的时候,摘一把桂花放入肉中烧炖,别有一番滋味。 原料:五花肉750克,广东菜心200克,桂花适量,冰糖40克,草菇老抽1勺,蒸鱼豉油1勺,蚝油适量,香叶2片,桂皮1块,...
一切从一个"小黄片"的谎言开始,由各种入侵为过程,最后,谁能想到,机缘巧合中,竟扣开了一扇数亿元的黑产大门… 那个再平凡不过的夜里,我一如既往的用手机刷着新闻。点击了一篇名为“深圳房价下跌,…”的新闻。 就在我认真的关注房价时,弹出了这样的东西。 其实这种伪装成qq信息的链接早已经司空见惯...
拆分了一下鹅厂工资构成,根据岗位和水平,基本工资再19k-22k,18薪,每个月房补4k,股票也是分等级6-22万,分两年发,签字费3w。这样算下来,低的有40万,高的有60万。上管拿40万的这种叫白菜价; 有以下几方面的原因: 1、最需要的不是经验,而是创新。 比如金融、地产行...
互联网发展迅速,许多企业都有自己的网站,网站的运营就需要去推广,那么下面为大家讲解一下网络推广的方法,希望对大家有帮助。1,搜索引擎推广法。seo技术在网络推广中已经广泛应用,利用 互联网发展迅速,许多企业都有自己的网站,网站的运营就需要去推广,那么下面为大家讲解一下网络推广的方法,希望对大家有帮...
“什么网络电话软件靠谱?”,很多有通话需求的都有这疑问,小编觉得现阶段打电话不再只追求便宜了,通话软件APP在打电话和通话的过程中首先要解决的是通话质量,电话必须要打得通,音质 “什么网络电话软件靠谱?”,很多有通话需求的都有这疑问,小编觉得现阶段打电话不再只追求便宜了,通话软件APP在打...
经常有人问:做公众号能不能转载其他号的文章?会不会不好?首先抛出我的观点:能,肯定的。容我简单说一下:1转载不是什么丢人的事,恰恰相反,只要随便看一些大号就会发现,他们每天都需要转 经常有人问: 做公众号能不能转载其他号的文章?会不会不好? 首先抛出我的观点: 能,肯定的。 容我简单说一下...
微信公众号推广不仅仅是简单盲目的做宣传,而是要有效快速的发展微信用户,将微信公众号推广出去。那么微信公众号怎么推广效果好呢?怎样有效的推广公众号?1不用分散精力做多个号。服务号 微信公众号推广不仅仅是简单盲目的做宣传,而是要有效快速的发展微信用户,将微信公众号推广出去。那么微信公众号怎么推广效果好...
“抖音第一网红”又换人了。3月底,“疯狂小杨哥”终于超过“刘德华”,成为粉丝量Top1的抖音网红。截至目前,疯狂小杨哥的抖音粉丝量达7242万。(统计不包括“人民日报”“央视新闻” “抖音第一网红”又换人了。 3月底,“疯狂小杨哥”终于超过“刘德华”,成为粉丝量Top1的抖音网红。截至目前,疯狂...
网站新手入行时,在接手一个网站项目的时候往往不知道怎么入手,可能大多数优化人员都会首先想到挖掘关键词,采集文章伪原创,布局外链等等一些SEO职能范畴之内的具体事务,这些仅仅属于在S 网站新手入行时,在接手一个网站项目的时候往往不知道怎么入手,可能大多数优化人员都会首先想到挖掘关键词,采集文章伪原创...
扫墓立碑是作为小辈必做的事情之一,这不眼见着就要寒衣节了了,由于很多地方都有立碑这一说到,所以关于立碑墓碑上刻什么图案好一直是大家讨论的焦点,下面小编就和大家一起看看。墓碑上刻什么图案好这要看地方的讲究。墓地是相当有气运 扫墓立碑是作为小辈必做的事情之一,这不眼见着就要寒衣节了了,由于很多地方都有...
樱桃核是比较常见的一种果核,它含有多种营养成分,适量食用对身体有一定的好处,可以起到很好功效与作用,比如健脑安神、消肿止痛以及解毒活血等,用法用量也是有一定讲究的,最好在医生的指导下服用。樱桃核的功效与作用樱桃石主要分布 樱桃核是比较常见的一种果核,它含有多种营养成分,适量食用对身体有一定的好处,...
近日,四川省教育厅下发了《关于进一步提升全国中小学生学籍数据质量暨加快问题数据处理的通知》,要求各地各校通过四川省教育公共信息服务平台(http://bigapp.scedu.net)“学籍校正”应用,复核 近日,四川省教育厅下发了《关于进一步提升全国中小学生学籍数据质量暨加快问题数据处理的通知》...
在使用浏览器的过程中,可能会遇到需要切换至兼容模式才能打开想要页面的情况。现在很多浏览器都自带防毒功能,可能会把很多元件直接当成病毒自动阻挡,导致一些元素在普通模式下无法显示。本文将根据大家常用的浏览器提供相应的浏览器兼 在使用浏览器的过程中,可能会遇到需要切换至兼容模式才能打开想要页面的情况。现...
羊血是比较少见的一种动物血液,它里面也含有丰富的营养成分,可以起到很不错的功效与作用,适量食用可以补血止血、祛瘀解毒等,补充人体所需的营养,但是服用不当,也可能会增加肠胃负担,引起消化不良以及肠胃不适。羊血的功效与作用及 羊血是比较少见的一种动物血液,它里面也含有丰富的营养成分,可以起到很不错的功...
iPhone14promax在官方直营店依旧没现货,包括京东或者天猫旗舰店,想买现货的朋友们在官网蹲到了吗?目前,iPhone14promax黄牛加价1200,可以自己卖赚点钱,如果自己加钱买的话就没必要了。iPhone iPhone14promax在官方直营店依旧没现货,包括京东或者天猫旗舰店,...