Javascript 将数组切片为数组的数组

Javascript 将数组切片为数组的数组,javascript,arrays,Javascript,Arrays,如果我有一个函数: function sliceArrayIntoGroups(arr, size) { var slicedArray = arr.slice(0, size); return slicedArray; } 我正在寻找一个数组,并将其切片为一个数组。。我该怎么做呢 如果我有这个: sliceArrayIntoGroups(["a", "b", "c", "d"], 2); 结果应该是: [["a","b"],["c","d"]] 但是我不知道在切片后如何保存原始

如果我有一个函数:

function sliceArrayIntoGroups(arr, size) {
  var slicedArray = arr.slice(0, size);

  return slicedArray;
}
我正在寻找一个数组,并将其切片为一个数组。。我该怎么做呢

如果我有这个:

sliceArrayIntoGroups(["a", "b", "c", "d"], 2);
结果应该是:

[["a","b"],["c","d"]]
但是我不知道在切片后如何保存原始数组的第二部分


感谢您的帮助。

这应该可以做到。这是一个简单的递归函数,它从数组的开头分割n个元素,并用剩余的元素调用自己

函数切片arrayintogroups(arr,size){
如果(arr.length==0){return arr;}
返回[arr.slice(0,大小),…sliceArrayIntoGroups(arr.slice(大小),大小)];
}
log(sliceArrayIntoGroups([1,2,3,4,5],2));
log(sliceArrayIntoGroups([1,2,3,4,5],3));

log(sliceArrayIntoGroups([1,2,3,4,5],10))试试这个,它会将原始数组分为两块,然后将concat分为一块

函数切片arrayintogroups(arr,size){
如果(大小>=arr.length | | size请尝试以下操作:

函数切片arrayintogroups(arr,size){
var结果=[];
而(arr.length>0){
结果:推送(arr.拼接(0,大小));
}
返回结果;
}
log(sliceArrayIntoGroups([“a”、“b”、“c”、“d”、“e”、“f”]、3));

console.log(sliceArrayIntoGroups([“a”、“b”、“c”、“d”]、2));
使用常规
的解决方案,同时
循环和自定义
步骤
参数:

函数切片arrayintogroups(arr,size){
var step=0,sliceArr=[],len=arr.length;
while(步骤
Reduce:

var x = [1,2,3,4,5,6,7,8,9];
var chunk = function(arr,n) {
    var temp;
    return arr.reduce(function(carry,item,index) {

        //if we're at a chunk point: index%n == 0
        if(!(index%n)) { 

            //if temp currently holds items, push it onto carry
            if(temp && temp.length) { carry.push(temp); }

            //reset temp to an empty array
            temp = []; 
        }

        //push the current item onto temp
        temp.push(item);

        //if this is the last item in the array, push temp onto carry
        index == arr.length-1 && carry.push(temp);

        return carry;
    },[]);
};

chunk(x,5);
Javascript slice()方法将数组中选定的元素作为新的数组对象返回。因此,使用for循环创建smallArray并将它们推送到arrGroup数组

function sliceArrayIntoGroups(arr, size) {
  let arrGroup =[];
  for (let i=0; i<arr.length; i+=size) {
    let smallArray = arr.slice(i,i+size);//creating smaller array of required size using slice
    arrGroup.push(smallArray);
  }
  return arrGroup;
}
函数切片arrayintogroups(arr,size){
设arrGroup=[];

对于(设i=0;这看起来像数组分块,我应该向您推荐:这会导致
[[“a”、“b”、“c”、“d”]]]
@BviLLe\u Kid我的操作数颠倒了。再试试看。(当我在电脑前时,我会把它变成一个片段。)您应该注意,此代码将改变原始数组,这可能是意外行为。虽然您可能已经解决了此用户的问题,但仅代码的答案对将来遇到此问题的用户没有多大帮助。请编辑您的答案以解释您的代码解决原始问题的原因。感谢您的建议。编辑了a回答。