作家
登录

JavaScript30秒, 从入门到放弃

作者: 来源: 2017-12-25 14:05:13 阅读 我要评论

size, i * size + size)); 
  • // chunk([1,2,3,4,5], 2) -> [[1,2],[3,4],[5]] 
  • 按照给定的 size 将一个数组切分成含有 size 个数的更小数组块的数组。

    应用 Array.from() 临盆新的相符定义的数组。应用 Array.slice() 来朝长进步指定 size 个元素构成新的数组块。如不雅原数组长度不克不及被 size 整除,最后的残剩的那些元素将归属于最后一个块。

    1. ➜  code cat chunk.js 
    2. const chunk = (arr, size) => 
    3.   Array.from({ length: Math.ceil(arr.length / size) }, (v, i) => 
    4.     arr.slice(i * size, i * size + size
    5.   ); 
    6.  
    7. console.log(chunk([1, 2, 3, 4, 5], 2)); 
    8. ➜  code node chunk.js 
    9. [ [ 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 ).

    【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?

    1. const compact = arr => arr.filter(Boolean); 
    2. // 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 过滤掉落。

    1. ➜  code cat compact.js 
    2. const compact = arr => arr.filter(Boolean); 
    3.  
    4. console.log(compact([0, 1, false, 2, "", 3, "a""e" * 23, NaN, "s", 34])); 
    5. ➜  code node compact.js 
    6. [ 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.

    1. const countOccurrences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0); 

        推荐阅读

        NodeJs爬虫抓取古代典籍,共计16000个页面心得体会总结及项目分享

      【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 之前研究数据,零零碎散的写过一些数据抓取的爬虫,不过写的比较随便。有很多处所如今看起来并不是很合理 这>>>详细阅读


      本文标题:JavaScript30秒, 从入门到放弃

      地址:http://www.17bianji.com/lsqh/40136.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)