JavaScript数组推送缺少值
此函数将获取一个数组并将其分块到单独的数组中,在开头创建一个偏移量并将其包装到另一个数组中。我遇到的问题是,不是原始数组(arr1)中的所有数字都包含在块中。您可以在下面我提供的链接中看到输出。它漏掉了数字5、13、21、29和30。有人能解释为什么会这样吗JavaScript数组推送缺少值,javascript,arrays,for-loop,Javascript,Arrays,For Loop,此函数将获取一个数组并将其分块到单独的数组中,在开头创建一个偏移量并将其包装到另一个数组中。我遇到的问题是,不是原始数组(arr1)中的所有数字都包含在块中。您可以在下面我提供的链接中看到输出。它漏掉了数字5、13、21、29和30。有人能解释为什么会这样吗 function chunkifyArray(input, chunkSize, offset) { const output = []; let tmp = offset ? new Array(offset).fil
function chunkifyArray(input, chunkSize, offset) {
const output = [];
let tmp = offset ? new Array(offset).fill('') : [];
for(var i = 0; i < input.length; i++){
if (tmp.length < chunkSize) {
tmp.push(input[i]);
} else {
output.push(tmp);
tmp = [];
}
}
return output;
}
var arr1 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30'];
console.log(chunkifyArray(arr1, 7, 3));
函数chunkifyArray(输入、chunkSize、偏移量){
常量输出=[];
设tmp=offset?新数组(offset).fill(“”):[];
对于(变量i=0;i
因为您从不推送这些值-您将清空tmp insead…请尝试以下操作:
for(var i = 0; i < input.length; i++){
tmp.push(input[i]);
if (tmp.length == chunkSize) {
output.push(tmp);
tmp = [];
}
}
for(变量i=0;i
编辑以确保最后一个区块被推送到输出…因为您从不推送这些值-您清空tmp insead…尝试以下操作:
for(var i = 0; i < input.length; i++){
tmp.push(input[i]);
if (tmp.length == chunkSize) {
output.push(tmp);
tmp = [];
}
}
for(变量i=0;i
编辑以确保最后一个块被推送到输出…我对您的代码做了一点修改,以获得所需的结果。您可以使用
%
运算符,并记住在for
循环的末尾添加最后一部分:
var数据=['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30'];
函数chunkifyArray(输入,chunkSize,偏移量=0){
让输出=[],tmp=[];
输入=新数组(偏移量).fill('').concat(输入);
对于(变量i=0;i log(chunkifyArray(数据,7,3))代码>我对您的代码做了一点修改,以获得所需的结果。您可以使用%
运算符,并记住在for
循环的末尾添加最后一部分:
var数据=['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30'];
函数chunkifyArray(输入,chunkSize,偏移量=0){
让输出=[],tmp=[];
输入=新数组(偏移量).fill('').concat(输入);
对于(变量i=0;i log(chunkifyArray(数据,7,3))代码>因为你从不推送那些值-你清空tmp insead…因为你从不推送那些值-你清空tmp insead…这仍然会错过最后一块。推送应该先到。这仍然会错过最后一块。推动应该是第一位的。