javascript - 尝试在javascript中将数组拆分为指定数量的子数组

标签 javascript arrays

我正在编写一个函数,它接受一个数组和一个数字参数,并返回从给定数组中分割的数组数量。所以调用 chunkArrayInGroups(["a", "b", "c", "d"], 2);应返回 [a,b] [c,d]。我的代码返回 [a,c] [b,d]。这应该是一个简单的解决方案,但我仍然无法弄清楚。

function chunkArrayInGroups(arr, size) {
// Break it up.

var newarr=[];
var amount=0;
if(arr.length%2===0)
{
  amount=arr.length/size;
}
else
amount=(arr.length/size)+1;
console.log(amount);
for(i=0;i<amount;i++)
{
  newarr[i]=[];
}
console.log(newarr);
for(z=0;z<arr.length;z=z+size)
{

  for(x=0;x<size;x++)
    {
      newarr[x].push(arr[z+x]);

    }


   }
  console.log(newarr);
   }

  chunkArrayInGroups(["a", "b", "c", "d"], 2);

此外,如果您发现语法错误,请纠正我,我习惯于编写 Java。谢谢!

最佳答案

遍历数组中的所有项目,每当索引 % size 为 0 时,添加另一个子数组,然后将项目推送到最后一个子数组。

function chunkArrayInGroups(arr, size) {
  var chunks = [];
  
  for(var i = 0; i < arr.length; i++) {    
    if(i % size === 0) {
      chunks.push([]);
    }
    
    chunks[chunks.length - 1].push(arr[i]);
  }
  
  return chunks;
}

console.log('Size 2', JSON.stringify(chunkArrayInGroups(['a', 'b', 'c', 'd'], 2)));
console.log('Size 3', JSON.stringify(chunkArrayInGroups(['a', 'b', 'c', 'd'], 3)));
console.log('Size 4', JSON.stringify(chunkArrayInGroups(['a', 'b', 'c', 'd'], 4)));
console.log('Size 6', JSON.stringify(chunkArrayInGroups(['a', 'b', 'c', 'd'], 6)));

关于javascript - 尝试在javascript中将数组拆分为指定数量的子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45466125/

相关文章:

javascript - 在 Atom 编辑器中突出显示 HTML 中的 javascript

javascript - 多级(下拉)菜单CSS JS

c - 如何找到数组的大小(从指向数组第一个元素的指针)?

javascript - 将两个选项对象与函数合并

c++ - (c++) 将随机值从 main 保存到函数数组

php - JSON 编码/解码无法正常工作

javascript - Json数据表传递失败

javascript - 即使遵循 react 导航文档, react 导航也无法在屏幕之间导航

c - 求char**形式的字符串数组的长度?

java - java列表的数组索引越界异常错误