Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从for循环生成一个数组_Javascript_Arrays_For Loop - Fatal编程技术网

Javascript 从for循环生成一个数组

Javascript 从for循环生成一个数组,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我想把每个迭代放在一个主数组中的数组中。 如下所示:数组=[[a,b],[c,d],[e,f]] 推送法和切片、拼接 var descendants = [A,C,C,D,C,B], chunk = 2, descendantPairs = []; for (var i = 0; i < descendants.length; i += chunk) { descendantPairs = descendantPairs.push(descendants.slice(i, i + ch

我想把每个迭代放在一个主数组中的数组中。 如下所示:数组=[[a,b],[c,d],[e,f]]

推送法和切片、拼接

var descendants = [A,C,C,D,C,B], 
chunk = 2, 
descendantPairs = [];
for (var i = 0; i < descendants.length; i += chunk) {
descendantPairs = descendantPairs.push(descendants.slice(i, i + chunk));
console.log("descendantPairs: " + descendantPairs});
}
现在我可以得到这样的对,但是我需要对所有对做更多的逻辑,而不仅仅是最后一对,因此我需要一个数组来保存所有对

我现在在console.log中得到了以下信息:

后代对:A,C 后代配对:C,D
子体对:C,B

您可以将每个片段推送到结果数组,而无需分配数组的新长度。下一个循环抛出一个错误,因为您的后代对现在是一个数字,而不再是一个数组,这是使用push方法所需要的

var后代=['A','C','C','D','C','B'], 区块=2, 结果=[], i=0; 而我的长度{ result.pushDescents.slicei,i+=chunk; }
console.logresult 您可以将每个切片推送到结果数组,而无需分配数组的新长度。下一个循环抛出一个错误,因为您的后代对现在是一个数字,而不再是一个数组,这是使用push方法所需要的

var后代=['A','C','C','D','C','B'], 区块=2, 结果=[], i=0; 而我的长度{ result.pushDescents.slicei,i+=chunk; } console.logresult var arr=['A','C','C','D','C','B']; 设chunk=2; 让配对=[]; forlet i=0;i控制台日志对 push方法返回所添加元素的长度,而不是推送元素后的数组

替换后代对=后代对.pushDescents.slicei,i+块; 与


push方法返回所添加元素的长度,而不是推送元素后的数组

替换后代对=后代对.pushDescents.slicei,i+块; 与


您的代码包含一个问题,您正在使用method的返回值重新分配后代对,该值将是数组的长度,并且由于没有类型Number的push方法,因此会导致在下一次迭代中抛出错误

要使其工作,只需删除重新分配部分,并在for循环后记录值

var后代=['A','C','C','D','C','B'], 区块=2, 后代对=[]; 对于var i=0;i.长度;i+=块{ 后代对.pushDescents.slicei,i+块; }
console.LogDegenantPairs:,DegenantPairs 您的代码包含一个问题,您正在使用method的返回值重新分配后代对,该值将是数组的长度,并且由于没有类型Number的push方法,因此会导致在下一次迭代中抛出错误

要使其工作,只需删除重新分配部分,并在for循环后记录值

var后代=['A','C','C','D','C','B'], 区块=2, 后代对=[]; 对于var i=0;i.长度;i+=块{ 后代对.pushDescents.slicei,i+块; }
console.LogDegenantPairs:,DegenantPairs 像这样的东西可以达到目的:

让后代=['A','C','C','D','C','B']; 设chunk=2; 让结果=[]; 对于let i=0;i.长度;i+=块{ result.push.slicei,i+块; }
console.logresult 像这样的东西可以达到目的:

让后代=['A','C','C','D','C','B']; 设chunk=2; 让结果=[]; 对于let i=0;i.长度;i+=块{ result.push.slicei,i+块; }
console.logresult 您可以使用一个简单的for循环和一个temp变量,并将每秒索引上的值推送到最终输出

var arr=[`A`、`C`、`C`、`D`、`C`、`B`] 让op=[] 设温度=[] forlet i=0;i0{ 操作温度 }
logop您可以使用一个简单的for循环和一个temp变量,并将每秒索引上的值推送到最终输出

var arr=[`A`、`C`、`C`、`D`、`C`、`B`] 让op=[] 设温度=[] forlet i=0;i0{ 操作温度 }
console.logopdescendantPairs=后代对.pushdescendants.slicei,i+chunk@MarkMeyer它需要保持子体的顺序,以便成对,即数组=[[A,C],[C,D],[D,C]]不要用pushResult覆盖整个变量为什么不使用值%2==0 evenDegenantPairs=DegenantPairs.pushDegenders.slicei,i+chunk@MarkMeyer它需要保持子体的顺序,成对排列,即数组=[[A,C],[C,D],[D,C]]不要用push的结果覆盖整个变量为什么不使用if值%2==0,甚至你能解释一下这有什么不同吗
om OP做了什么,因为她正在将每个切片推送到结果数组?它不会将推送到结果集的数组的新长度的结果。您能解释一下这和OP做的有什么不同吗,因为她正在将每个切片推送到结果数组?它不会将推送到结果集的新数组长度的结果分配给结果集。应该真正测试一下。有严重的缺陷有一个内置的代码编辑器,如果你在编辑答案时点击它,它可以让你运行你的代码。有严重的缺陷有一个内置的代码编辑器,如果你在编辑答案时点击它,它可以让你运行你的代码
descendantPairs.push(descendants.slice(i, i + chunk));