javascript - 我的函数应该将数组分割成更小的数组并将它们放回原始数组,这有什么问题吗?

标签 javascript arrays

这是我的代码。我修改了至少5次,返回的结果是0。奇怪。

function chunkArrayInGroups(arr, size) {
  
  var array=[];
  for(var i=0;i<=arr.length;i=i+size){
    if(i+size<arr.length) array=arr.slice(i,i+size).push();
    else if(i+size>=arr.length) array=arr.slice(i).push();
  }
  
  return array;
}

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

应该返回的是[[a,b],[c,d]]。

最佳答案

仔细看看你的代码:

array=arr.slice(i,i+size).push()

您正在分配 arr.slice.push 的结果至array ;但是 push returns the length of the new array 。您可能真正想做的是插入 array切片:

array.push(arr.slice(i,i+size))

你可能想知道为什么最终结果是 0而不是2 ,这就是您期望的 block 的长度。这是因为你迭代得有点太多了; i<=arr.length应该是i<arr.length .

function chunkArrayInGroups(arr, size) {
  var array=[];
  for (var i = 0; i < arr.length; i = i + size) {
    if (i + size < arr.length) array.push(arr.slice(i, i + size));
    else if (i + size >= arr.length) array.push(arr.slice(i));
  }
  
  return array;
}

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

关于javascript - 我的函数应该将数组分割成更小的数组并将它们放回原始数组,这有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970640/

相关文章:

javascript - Vue.js 不使用 TextTrackCueList 更新 DOM

javascript - Chart.js,您可以覆盖图例标签框颜色吗?

javascript - 数组中大小 N 的组合

javascript - Google Firebase OrderByChild 不支持嵌套动态键

javascript - 并排绘制多条 SVG 线

javascript - 使 div 可拖动并且父 div 一起移动

C++ 从数组中分离正值和负值

arrays - Excel VBA 中的数组函数

php - 拆分字符串形成多维数组键?

arrays - 错误 : Objects are not valid as a React child (found: object with keys {}). 请改用数组