Split array into two arrays

前端 未结 9 956
甜味超标
甜味超标 2020-12-24 10:24
var arr = [\'a\', \'b\', \'c\', \'d\', \'e\', \'f\'];
var point = \'c\';

How can I split the \"arr\" into two arrays based on the \"point\" variabl

9条回答
  •  北荒
    北荒 (楼主)
    2020-12-24 11:20

    Sharing this convenience function that I ended up making after visiting this page.

    function chunkArray(arr,n){
         var chunkLength = Math.max(arr.length/n ,1);
         var chunks = [];
         for (var i = 0; i < n; i++) {
             if(chunkLength*(i+1)<=arr.length)chunks.push(arr.slice(chunkLength*i, chunkLength*(i+1)));
         }
         return chunks; 
     }
    

    Sample usage:

    chunkArray([1,2,3,4,5,6],2);
    //returns [[1,2,3],[4,5,6]]
    
    chunkArray([1,2,3,4,5,6,7],2);
    //returns [[1,2,3],[4,5,6,7]]
    
    chunkArray([1,2,3,4,5,6],3);
    //returns [[1,2],[3,4],[5,6]]
    
    chunkArray([1,2,3,4,5,6,7,8],3);
    //returns [[1,2],[3,4,5],[6,7,8]]
    
    chunkArray([1,2,3,4,5,6,7,8],42);//over chunk
    //returns [[1],[2],[3],[4],[5],[6],[7],[8]]
    

提交回复
热议问题