JavaScript算法练习:数组分割算法

2018-03-0906:09:24WEB前端开发Comments2,560 views字数 587阅读模式

数组分割算法
把一个数组arr按照指定的数组大小size分割成若干个数组块。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1354.html

例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1354.html

chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1354.html

Answer:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1354.html

function chunk(arr, size) {
    var len = parseInt(arr.length / size); //数组的长度除于指定的size得到一个整数。
    var remain = arr.length % size; //数组的长度除于指定的size取余
    var a = [],
        count = 1,
        sot = remain > 0 ? len + 1 : len; //sot为新数组的长度
    for (var f = 1; f <= sot; f++) {
        var start = size * (f - 1); //数组一般从0开始。
        var end = (f > len) ? ((f - 1) * size + remain) : f * size;
        //结束是按size,就是一个数学逻辑式。如果f>len,一般就是最后一次循环,只需要用前面的加上最后余的数,如果没有或没有余数,就直接f*size就是结束的点。
        var mylocates = arr.slice(start, end); //slice() 方法可从已有的数组中返回选定的元素。
        a.push(mylocates);
    }
    return a;
}
chunk(["a", "b", "c", "d"], 2);
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1354.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/1354.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定