Javascript 自由代码营->篝火:矮猴子
这篝火来自自由代码营地 这场篝火中的任务如下:Javascript 自由代码营->篝火:矮猴子,javascript,arrays,Javascript,Arrays,这篝火来自自由代码营地 这场篝火中的任务如下: 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];
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);
编写一个函数,将数组的第一个参数拆分为第二个参数大小的组,并将其作为多维数组返回 我的代码如下:
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 ] ]
我希望并认为空间不重要。如果不是这样,请告诉我
但在我写的东西中没有看到这一点。它只是看到
[ [], [] ]
谁能告诉我怎么了吗?空格不重要。但是我不完全理解你的问题。你得到错误数据的理由是什么 我认为代码中的一个大问题是函数在全局范围内操作变量。将ars和all的变量声明放在函数范围内 这也适用于: 函数chunkr,大小{ var n=[]; 惠勒长度{ n、 pushr.0,尺寸; } 返回n; } var r='ABCDEFGHIjklmnopqrstuvxyz'。拆分; document.getElementByIdresult.innerHTML=;
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);
空间不重要。但是我不完全理解你的问题。你得到错误数据的理由是什么 我认为代码中的一个大问题是函数在全局范围内操作变量。将ars和all的变量声明放在函数范围内 这也适用于: 函数chunkr,大小{ var n=[]; 惠勒长度{ n、 pushr.0,尺寸; } 返回n; } var r='ABCDEFGHIjklmnopqrstuvxyz'。拆分; document.getElementByIdresult.innerHTML=;
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);
这就是我写的答案。它正在工作
function chunk(arr, size) {
var arr2 =[],
i=0;
while( i< arr.length){
arr2.push(arr.slice(i,i+=size));
}
return arr2;
}
这就是我写的答案。它正在工作
function chunk(arr, size) {
var arr2 =[],
i=0;
while( i< arr.length){
arr2.push(arr.slice(i,i+=size));
}
return arr2;
}
这是@oumnya benhassou的答案的一个稍微清晰的版本:
function chunkArrayInGroups(arr, size) {
var holderArray = [];
for (var i = 0; i < arr.length; i = i + size) {
holderArray.push(arr.slice(i, i + size));
}
return holderArray;
}
chunkArrayInGroups(["a", "b", "c", "d"], 2);
这是@oumnya benhassou的答案的一个稍微清晰的版本:
function chunkArrayInGroups(arr, size) {
var holderArray = [];
for (var i = 0; i < arr.length; i = i + size) {
holderArray.push(arr.slice(i, i + size));
}
return holderArray;
}
chunkArrayInGroups(["a", "b", "c", "d"], 2);
当我这样做的时候,我不知道如何使用slice方法,但是使用splice方法应该更容易理解
function chunkArrayInGroups(arr, size) {
var times = Math.ceil(arr.length/size), start=0, tempArr=[];
for(var i=0;i<times;i++){
tempArr.push(arr.slice(start, start+size));
start = start+size;
}
return tempArr;
}
chunkArrayInGroups(["a", "b", "c", "d"], 2);
希望这能有所帮助。在我做这件事的时候,我不知道如何使用切片方法,但是使用拼接方法应该更容易理解
function chunkArrayInGroups(arr, size) {
var times = Math.ceil(arr.length/size), start=0, tempArr=[];
for(var i=0;i<times;i++){
tempArr.push(arr.slice(start, start+size));
start = start+size;
}
return tempArr;
}
chunkArrayInGroups(["a", "b", "c", "d"], 2);
function chunkArrayInGroups(arr, size) {
var placeholder = [];
for (i=0; i<arr.length;)
placeholder.push(arr.slice(i,i+=size));
return placeholder;
}
希望这有帮助
function chunkArrayInGroups(arr, size) {
var placeholder = [];
for (i=0; i<arr.length;)
placeholder.push(arr.slice(i,i+=size));
return placeholder;
}
在这里:
times变量表示循环执行的次数。
例如:
考虑这个数组[a,b,c,d,e],2
这里时间=3
在第一个循环中,[a,b]
在第二个循环中,[c,d]
第三环路[e]
在这里:
times变量表示循环执行的次数。
例如:
考虑这个数组[a,b,c,d,e],2
这里时间=3
在第一个循环中,[a,b]
在第二个循环中,[c,d]
第三个循环,[e]这非常干净
function chunk(arr, size) {
// Break it up.
var i=0,j=size,pack=[],arrOutput=[];
var loop=(arr.length/size);
for(k=0;k<loop;k++){
pack=arr.slice(i,j);
arrOutput.push(pack);
pack=[];
i=j;
j=i+size;
}
return arrOutput;
}
首先,我们创建一个空数组。
我们创建了一个for循环,但没有i++,因为我们想分块移动。
我们将切片数组推送到新的空数组中。slicei+=大小在此处起作用
因为切片x,y从x开始,在y-1结束,如果您愿意,不包括在内。这非常干净
function chunk(arr, size) {
// Break it up.
var i=0,j=size,pack=[],arrOutput=[];
var loop=(arr.length/size);
for(k=0;k<loop;k++){
pack=arr.slice(i,j);
arrOutput.push(pack);
pack=[];
i=j;
j=i+size;
}
return arrOutput;
}
function chunk(arr, size) {
// Break it up.
var newarr=[];
var Len = Math.floor(arr.length/size);
var len = arr.length;
var num =len%size;
if (num===0) {
for (var i = 0; i < Len; i++) {
newarr.push(arr.splice(0,size));
}
}
else{
for (var j = 0; j < Len; j++) {
newarr.push(arr.splice(0,size));
}
newarr.push(arr.splice(0,num));
}
return newarr;
}
首先,我们创建一个空数组。
我们创建了一个for循环,但没有i++,因为我们想分块移动。
我们将切片数组推送到新的空数组中。slicei+=大小在此处起作用
由于切片x、y从x开始,在y-1结束,因此如果愿意,不包括y
function chunk(arr, size) {
// Break it up.
var newarr=[];
var Len = Math.floor(arr.length/size);
var len = arr.length;
var num =len%size;
if (num===0) {
for (var i = 0; i < Len; i++) {
newarr.push(arr.splice(0,size));
}
}
else{
for (var j = 0; j < Len; j++) {
newarr.push(arr.splice(0,size));
}
newarr.push(arr.splice(0,num));
}
return newarr;
}
我使用动态指针I和j按大小剪切原始数组,然后推入输出数组
function chunkArrayInGroups(arr, size) {
var myArr = [];
var loopCount = Math.ceil(arr.length/size);
var pos = 0;
for (var i = 0; i < loopCount; i++){
myArr.push(arr.slice(pos, size + pos));
pos += size;
}
return myArr;
}
chunkArrayInGroups(["a", "b", "c", "d"], 3);
我使用动态指针I和j按大小剪切原始数组,然后推入outputArray。编写一个函数,将数组的第一个参数拆分为大小为第二个参数的组,并将其作为二维数组返回
function chunkArrayInGroups(arr, size) {
var myArr = [];
var loopCount = Math.ceil(arr.length/size);
var pos = 0;
for (var i = 0; i < loopCount; i++){
myArr.push(arr.slice(pos, size + pos));
pos += size;
}
return myArr;
}
chunkArrayInGroups(["a", "b", "c", "d"], 3);
函数chunkArrayingGroupSarr,大小{
var chunkArray=[];
对于var i=0,len=arr.length;i编写一个函数,将数组的第一个参数拆分为第二个参数的长度,并将其作为二维数组返回 函数chunkArrayingGroupSarr,大小{ var chunkArray=[];
对于var i=0,len=arr.length,我是这样做的,希望能有所帮助
function chunkArrayInGroups2(arr , size) {
var b = [];
for (;arr.length > 0; arr=arr.slice(size)) {
b.push(arr.slice(0, size));
}
return b;
}
我是这样做的,希望有帮助
function chunkArrayInGroups2(arr , size) {
var b = [];
for (;arr.length > 0; arr=arr.slice(size)) {
b.push(arr.slice(0, size));
}
return b;
}
另一个解决方案选项-
function chunkArrayInGroups(arr, size) {
// Break it up.
var result = [];
var s = 0; // Begin of the slice.
for (var i = 0; i < arr.length; i++) {
// It goes like slice(0, 2+0), then slice(2, 2+2), slice(4, 4+2).
// We increment s by 2 when we add to the array.
var n = arr.slice(s, size+s);
// Only add when slicing is not empty to prevent empty values.
if (n.length !== 0) {
result.push(n);
s += size; // Increment s by 2.
}
}
return result;
}
chunkArrayInGroups([0, 1, 2, 3, 4, 5], 3);
另一个解决方案选项-
function chunkArrayInGroups(arr, size) {
// Break it up.
var result = [];
var s = 0; // Begin of the slice.
for (var i = 0; i < arr.length; i++) {
// It goes like slice(0, 2+0), then slice(2, 2+2), slice(4, 4+2).
// We increment s by 2 when we add to the array.
var n = arr.slice(s, size+s);
// Only add when slicing is not empty to prevent empty values.
if (n.length !== 0) {
result.push(n);
s += size; // Increment s by 2.
}
}
return result;
}
chunkArrayInGroups([0, 1, 2, 3, 4, 5], 3);
这是另一个解决方案
这是另一个解决方案
这是什么语言?哦,对不起,这是Javascript这是什么语言?哦,对不起,这是Javascript这是我对那场篝火的解决方案。我希望它能帮助你解释你的答案。这是我对那场篝火的解决方案。我希望它能帮助你解释你的答案。请在你的答案中添加解释。请在你的答案中添加解释的代码片段可能会解决问题,确实有助于提高您的文章质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。虽然此代码片段可能会解决问题,但确实有助于提高您的文章质量。请记住,您 如果将来读者重新回答这个问题,那么这些人可能不知道您的代码建议的原因。