5 回答

TA貢獻158條經(jīng)驗 獲得超188個贊
function?chunk(arr,?size)?{ ??for(var?i=0,newArray=[],temp=[];?i<Math.ceil(arr.length/size);?i++){ ????for(var?j=0;j<size;j++){ ????????temp[j]?=?(arr[j+i*size]); ????} ????newArray[i]?=?[].concat(temp.includes(undefined)???temp.slice(0,?temp.indexOf(undefined))?:?temp); ??} ??return?newArray; } console.log(chunk([1,2,3,4,5,6,233,233],?3));?//?=>?[?[1,2,3],?[4,5,6],?[233,233]?]

TA貢獻646條經(jīng)驗 獲得超225個贊
function?chunk(arr,?size)?{ ????for(var?i=0,newArray=Array();i<Math.ceil(arr.length/size);i++){ ????????newArray[i]?=?Array(); ????????for(var?j=0;j<size;j++){ ????????????newArray[i].push(arr[j+i*size]); ????????} ????} ????return?newArray; } var?arr?=?[1,2,3,4,5,6,7,8,9,0]; var?size?=?3; var?ret?=?chunk(arr,size); console.log(ret);

TA貢獻1條經(jīng)驗 獲得超0個贊
function chunk(arr, size) {
??? for(var i=0,newArray=Array();i<Math.ceil(arr.length/size);i++){
??????? newArray[i] = Array();
??????? for(var j=0;j<size;j++){
??????????? newArray[i].push(arr[j+i*size]);
??????? }
????? }
? var p=0;
???? for(var k=0;k<newArray[newArray.length-1].length;k++){
?????? if(newArray[newArray.length-1][k]!=null){
???????? p++;
?????? }
???? }
???? for(var l=0;l<size-p;l++){
?????? newArray[newArray.length-1].pop();
???? }
??? return newArray;
}
樓上回答的代碼有些缺陷,如果被分割的數(shù)組元素不滿size時,會填充null進數(shù)組。
需要消除null才能算是正確答案。
我這么寫的代碼肯定很難看,不過基本的任務(wù)完成了,看樓主如何自行簡化代碼吧

TA貢獻1條經(jīng)驗 獲得超0個贊
function chunk(arr, size) {
? ?// Break it up.
? ?var arr1 = [];
? ?for (var i = 0; i < arr.length; i = i + size) {
? ? ? ?var arr2 = arr;
? ? ? ?arr1.push(arr2.slice(i, i + size));
? ?}
? ?return arr1;
}
chunk(["a", "b", "c", "d"], 2);
添加回答
舉報