Javascript 将两个项目组合在一个数组中
我试图将一个数组中的数字以两人一组的形式推入另一个数组 如果我有一个数组Javascript 将两个项目组合在一个数组中,javascript,arrays,Javascript,Arrays,我试图将一个数组中的数字以两人一组的形式推入另一个数组 如果我有一个数组[1,4,3,2]它应该返回[[1,4],[3,2] var arrayPairSum=函数(nums){ var len=nums.length/2; var-arr=[]; 对于(变量i=0;i
[1,4,3,2]
它应该返回[[1,4],[3,2]代码>
var arrayPairSum=函数(nums){
var len=nums.length/2;
var-arr=[];
对于(变量i=0;i arrayPairSum([1,4,3,2])
您可以使用reduce
方法来实现这一点reduce
方法接受数组中每个项上提供的回调
方法
换句话说,此方法对累加器应用函数,数组中的每个元素(从左到右)将减少为单个值
var数组=[1,4,3,2,8];
var contor=array.reduce(函数(contor,item,i){
如果(i%2==0)
contor.push([array[i],array[i+1]].filter(Boolean));
返回控制器;
},[]);
控制台日志(contor)代码>你非常接近。只需将长度更改为nums.length
,并在循环中将i
增加2
var arrayPairSum=函数(nums){
var len=nums.length-1;
var-arr=[];
对于(变量i=0;i arrayPairSum([1,4,3,2])
如果您真的想在数组上迭代,可能会跳过每秒的索引,因此i+=2
(正如satpal已经指出的):
var arrayPairSum=函数(nums){
var len=nums.length-1;//如果nums.length不是偶数,它将在执行nums[i+1]时崩溃,这就是为什么-1
var-arr=[];
对于(变量i=0;i arrayPairSum([1,4,3,2])代码>这将处理[1,4,3,2,5]