首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >免费代码营->篝火:块状猴子

免费代码营->篝火:块状猴子
EN

Stack Overflow用户
提问于 2015-08-05 17:13:59
回答 13查看 3.8K关注 0票数 0

这个篝火是自由代码营的。

本“篝火”的任务如下:

编写一个函数,将数组(第一个参数)分成大小长度组(第二个参数),并将它们作为多维数组返回。

我的守则如下:

代码语言:javascript
复制
var ars = [];
var all = [];
var ll = 0;

function chunk(arr, size) {
 for (var n = 0; n < arr.length/size; n++ ) {
  for(var l = 0; l < arr.length/(arr.length/size);l++) {
   if(ll < arr.length){
    ars[l]= arr[ll];
   }
   ll += 1;
  }
  all[n] = ars;
  ars = [];
 }
 return all;
}

chunk([0, 1, 2, 3, 4, 5], 4);

这个块返回的特殊示例

代码语言:javascript
复制
[0,1,2,3],[4,5]]

同样,支票系统认为这是正确的:

代码语言:javascript
复制
[ [ 0, 1, 2, 3 ], [ 4, 5 ] ]

(我希望并认为这些空间并不重要。如果不是这样,请告诉我)

但从我写的东西上看不出这一点。它只是看到

代码语言:javascript
复制
[ [], [] ]

谁能告诉我出什么事了吗?

EN

回答 13

Stack Overflow用户

发布于 2016-01-17 21:51:27

代码语言:javascript
复制
function chunk(arr, size) {
 var arr2 =[],
 i=0;
 while( i< arr.length){
  arr2.push(arr.slice(i,i+=size));
 }
 return arr2;
}
票数 2
EN

Stack Overflow用户

发布于 2015-08-05 17:39:49

空间不重要。但我不完全理解你的问题。什么论点,你得到了错误的数据?

我认为代码中的一个巨大问题是,您的函数正在操作全局范围内的变量。将arsall的变量声明放在函数范围内。

这也适用于:

代码语言:javascript
复制
function chunk(r, size) {
    var n = [];
    while(r.length) {
        n.push(r.splice(0, size));
    }
    return n;
}


var r = 'abcdefghijklmnopqrstuvwxyz'.split('');
document.getElementById("result").innerHTML = "<pre>" + chunk(r, 4).join("\n") + "</pre>";
代码语言:javascript
复制
<div id="result">
</div>

票数 1
EN

Stack Overflow用户

发布于 2015-12-18 09:38:40

这就是我写的答案。起作用了。

代码语言:javascript
复制
function chunk(arr, size) {
 var up=[];
 var a=0;
 var b=0;
 while(a<arr.length){ 
   up[b]=[];
   for(var i=0;i<size&&a<arr.length;i++){
     up[b].push(arr[a]);
     console.log(arr[a]);
     a++;
   }
  b++;
 }
  return up;
}
chunk(["a", "b", "c", "d"], 2);
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31838834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档