数组是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 天阵 是最早开放的阵法,提升天...
6 年前,的上线,几乎是一夜之间,拉动了微信用户绑定了 2 亿张银行卡,生生从阿里看似固若金汤的地盘上抢下山头,如今已是分庭而治之势。 此事给阿里带来的震动是核弹级别的,本以为已经结束的网络支付战争硝烟再起,马云痛斥此事为「珍珠港偷袭」,可见微信红包的奇袭打得阿里有多痛。反过来也说明,微信红包这一...
对于不怎么用电脑的朋友来说,每天给自己的笔记本电脑开机两小时能可以让我们的电脑寿命更长,有很多朋友问windows10怎么设置定时开机?其实针对电脑windows10设置定时开机的方法还是比较简单的,那么win10电脑自动开机怎么设置呢?接下来小编给大家介绍电脑windows10系统设置定时...
随着互联网的高速发展,企业网站建设早已成为企业运营的一种必要手段。企业拥有一个自己的官网是非常重要的,也是一个企业互联网战略的基础。任何一个企业都应该有一个属于自己的网站,这个网站 随着互联网的高速发展,企业网站建设早已成为企业运营的一种必要手段。企业拥有一个自己的官网是非常重要的,也是一个企业互...
作为一名市场营销的策划人员来说,怎么样才能做好一份完整较的营销策划书呢?构造分为三大部分:一是产品的市场状况分析,二是策划书正文内容。三是效果预测即方案的可行性与操作性。市场状况分 作为一名市场营销的策划人员来说,怎么样才能做好一份完整较的营销策划书呢? 构造分为三大部分:一是产品的市场状况分析...
微信目前严打的就四个方面;频繁加人;外挂软件;用户投诉和违法信息。当然,还有非常严重的连坐效应。所以,养好自己的号,至关重要,今天先和大家说说加人方式和他的上限规则。通讯录导入加人 微信目前严打的就四个方面;频繁加人;外挂软件;用户投诉和违法信息。当然,还有非常严重的连坐效应。所以,养好自己的号,...
大家知道在谷歌SEO工具中怎么样去挖掘关键词来选品,在这篇文章中,将给大家带来了常用的谷歌SEO工具挖掘关键词,具体内容看看下文吧!官网:ck139.com。一、GoogleKe 大家知道在谷歌SEO工具中怎么样去挖掘关键词来选品,在这篇文章中,将给大家带来了常用的谷歌SEO工具挖掘关键词,具...
我呢,是17年开始踏入网购的,到现在也有五年的时间了,大小东西也买了很多很多了,所以我感觉应该有发言权了。当然了,网购肯定会有上当的,因为吃一堑长一智嘛,我不可能说,我五年购物没有 我呢,是17年开始踏入网购的,到现在也有五年的时间了,大小东西也买了很多很多了,所以我感觉应该有发言权了。当然了,网...
微信拥有10亿用户,日活用户达8亿,可以说在中国除了小孩和老人不会用智能手机而没有使用微信之外,其他的中国人手机里应该都安装了微信。流量在哪里,生意就在哪里,这是所有做生意的老板都 微信拥有10亿用户,日活用户达8亿,可以说在中国除了小孩和老人不会用智能手机而没有使用微信之外,其他的中国人手机里应...
有人说扬州属于经济强的苏南,更多人说属于经济弱的苏北。如果以长江而论,当然属于苏北。但争来争去终于给扬州,甚至泰州、南通等地。找到一个当地人感觉有面子而苏北苏南地域人们又都认可的说 有人说扬州属于经济强的苏南,更多人说属于经济弱的苏北。如果以长江而论,当然属于苏北。但争来争去终于给扬州,甚至泰州、...
猕猴桃是生活中比较常见的一种水果,它含有多种营养成分,适量食用对身体有一定好处。孕妇也是可以吃猕猴桃的,可以补充维生素以及其他微量元素等,孕妇吃猕猴桃一天吃一两个比较好,不建议一次吃五个。猕猴桃孕妇一天吃几个最好1-2个 猕猴桃是生活中比较常见的一种水果,它含有多种营养成分,适量食用对身体有一定好...
樱桃核是比较常见的一种果核,它含有多种营养成分,适量食用对身体有一定的好处,可以起到很好功效与作用,比如健脑安神、消肿止痛以及解毒活血等,用法用量也是有一定讲究的,最好在医生的指导下服用。樱桃核的功效与作用樱桃石主要分布 樱桃核是比较常见的一种果核,它含有多种营养成分,适量食用对身体有一定的好处,...
寒衣节是很多北方地区都有的风俗习惯,但由于该节日并不是按照阳历来讲的而是按照阴历,所以农历十月初一是阳历的哪一天成了很多人都好奇的,下面小编就和大家一起看看十月初一节日什么意义。农历十月初一是阳历的哪一天农历十月初一是1 寒衣节是很多北方地区都有的风俗习惯,但由于该节日并不是按照阳历来讲的而是按照...
板栗是秋季比较常见的一种美食,它的吃法比较多,吃起来软糯可口,营养价值高,深受人们喜欢。板栗一般要吃热的,这样比较容易消化吸收,冷掉的熟板栗可以放微波炉加热,一般只要是开口的板栗,短时间加热是不会爆炸的。板栗可以微波炉加 板栗是秋季比较常见的一种美食,它的吃法比较多,吃起来软糯可口,营养价值高,深...
嘴唇疱疹是病毒性感染,和自身免疫力低有关,是具有传染性的,当你将嘴唇疱疹戳破后,很容易感染到新的地方,其他人碰到也会被传染。那么,嘴唇疱疹能彻底治愈吗?一起来看看久久派带来的相信介绍吧!嘴唇疱疹会传染给别人吗唇疱疹会传染 嘴唇疱疹是病毒性感染,和自身免疫力低有关,是具有传染性的,当你将嘴唇疱疹戳破...