按照给定的 size 将一个数组切分成含有 size 个数的更小数组块的数组。
应用 Array.from() 临盆新的相符定义的数组。应用 Array.slice() 来朝长进步指定 size 个元素构成新的数组块。如不雅原数组长度不克不及被 size 整除,最后的残剩的那些元素将归属于最后一个块。
- ➜ code cat chunk.js
- const chunk = (arr, size) =>
- Array.from({ length: Math.ceil(arr.length / size) }, (v, i) =>
- arr.slice(i * size, i * size + size)
- );
- console.log(chunk([1, 2, 3, 4, 5], 2));
- ➜ code node chunk.js
- [ [ 1, 2 ], [ 3, 4 ], [ 5 ] ]
Array.from(arrayLike, mapFn, thisArg) 这个办法呢,第一个参数是一个类数组或者可迭代的对象,第二个参数是一个应用在每一个数组元素上的办法,第三个参数就是改变 this 的指向了。通俗说就是指定谁是你的爸爸。
这里用了一个 { length: Math.ceil(arr.length / size) } 迭代对象, length 指定了迭代次数,即按照 size 分块后的数组长度,正好就是原数组长度除以 size 向上取整的值。向上取整就是为了知足不克不及完全整除的情况。比如5个元素按照2个一组进行分块,分了两组两个元素的,剩最后一个元素成了自力组,总长为3。
(v, i) ,因为迭代的时刻数组在每一个地位上都是以 undefined 初始化的,所以 v 一向都是 undefined 。
arr.slice(i * size, i * size + size) 迭代过程中每次朝长进步 size 个数的元素构成新数组。这里的 i 就是跟着迭代变更,比如 length 是3, i 就是0,1,2。
这里的迭代类似 python 里的 range 。
compact
chunk
Removes falsey values from an array.
Use Array.filter() to filter out falsey values ( false , null , 0 , "" , undefined , and NaN ).
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?
- const compact = arr => arr.filter(Boolean);
- // compact([0, 1, false, 2, '', 3, 'a', 'e'*23, NaN, 's', 34]) -> [ 1, 2, 3,
移除掉落数组里 falsey 的元素。(这个 falsey 不太好翻译,不是缺点的意思,而是该值布尔运算值为 false 的意思,我小我常用 !! 进行断定)。
应用 Array.filter() 把 false 、 null 、 0 、 "" 、 undefined 和 NaN 这些 falsey 过滤掉落。
- ➜ code cat compact.js
- const compact = arr => arr.filter(Boolean);
- console.log(compact([0, 1, false, 2, "", 3, "a", "e" * 23, NaN, "s", 34]));
- ➜ code node compact.js
- [ 1, 2, 3, 'a', 's', 34 ]
Array.prototype.filter() 干的,没啥好说。
countOccurrences
Counts the occurrences of a value in an array.
Use Array.reduce() to increment a counter each time you encounter the specific value inside the array.
- const countOccurrences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0);
推荐阅读
NodeJs爬虫抓取古代典籍,共计16000个页面心得体会总结及项目分享
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 之前研究数据,零零碎散的写过一些数据抓取的爬虫,不过写的比较随便。有很多处所如今看起来并不是很合理 这>>>详细阅读
地址:http://www.17bianji.com/lsqh/40136.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示