这个篝火是自由代码营的。
本“篝火”的任务如下:
编写一个函数,将数组(第一个参数)分成大小长度组(第二个参数),并将它们作为多维数组返回。
我的守则如下:
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);这个块返回的特殊示例
[0,1,2,3],[4,5]]同样,支票系统认为这是正确的:
[ [ 0, 1, 2, 3 ], [ 4, 5 ] ](我希望并认为这些空间并不重要。如果不是这样,请告诉我)
但从我写的东西上看不出这一点。它只是看到
[ [], [] ]谁能告诉我出什么事了吗?
发布于 2016-01-17 21:51:27
function chunk(arr, size) {
var arr2 =[],
i=0;
while( i< arr.length){
arr2.push(arr.slice(i,i+=size));
}
return arr2;
}发布于 2015-08-05 17:39:49
空间不重要。但我不完全理解你的问题。什么论点,你得到了错误的数据?
我认为代码中的一个巨大问题是,您的函数正在操作全局范围内的变量。将ars和all的变量声明放在函数范围内。
这也适用于:
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>";<div id="result">
</div>
发布于 2015-12-18 09:38:40
这就是我写的答案。起作用了。
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);https://stackoverflow.com/questions/31838834
复制相似问题