Javascript 如何将3个不同的数字添加到i,i+;1和i+;我的数组的2

Javascript 如何将3个不同的数字添加到i,i+;1和i+;我的数组的2,javascript,arrays,Javascript,Arrays,我想知道如何在3n、3n+1和3n+2索引中添加3个不同的数字。我的意思是,例如,我有以下数组: var arr = [1,1,1,2,2,2,3,3,3] 然后我想把第(3n)个加到5,然后把数组的第(3n+1)个加到2,把第(3n+2)个加到3, 我的意思是,我想要的最终数组类似于以下结果数组: var result = [6,3,4,7,4,5,8,5,6] 我尝试按照以下代码进行操作: // arr = [1,1,1,2,2,2,3,3,3] let res = []; for

我想知道如何在3n、3n+1和3n+2索引中添加3个不同的数字。我的意思是,例如,我有以下数组:

var arr = [1,1,1,2,2,2,3,3,3]
然后我想把第(3n)个加到5,然后把数组的第(3n+1)个加到2,把第(3n+2)个加到3, 我的意思是,我想要的最终数组类似于以下结果数组:

var result = [6,3,4,7,4,5,8,5,6]
我尝试按照以下代码进行操作:

// arr = [1,1,1,2,2,2,3,3,3]
 let res = [];
 for (let i = 0; i < arr.length; i++) {
  res.push([arr[i*3] * 5,
  arr[(i*3)+1] *2,
  arr[(i*3)+2] *3])

  }
//arr=[1,1,1,2,2,3,3]
设res=[];
for(设i=0;i
这应该可以做到:

var arr=[1,1,1,2,2,3,3,3],
add=[5,2,3],res=[];
//结果=[6,3,4,7,4,5,8,5,6]
对于(设i=0;ires[i+j]=arr[i+j]+v);

console.log(JSON.stringify(res))
这应该可以做到:

var arr=[1,1,1,2,2,3,3,3],
add=[5,2,3],res=[];
//结果=[6,3,4,7,4,5,8,5,6]
对于(设i=0;ires[i+j]=arr[i+j]+v);

console.log(JSON.stringify(res))
您可以通过对要添加的值数组的索引进行闭包来直接映射数组

var数组=[1,1,1,2,2,3,3,3],
加法=[5,2,3],
结果=array.map((i=>v=>v+add[i++%add.length])(0));

console.log(…结果)您可以通过对要添加的值数组的索引进行闭包来直接映射数组

var数组=[1,1,1,2,2,3,3,3],
加法=[5,2,3],
结果=array.map((i=>v=>v+add[i++%add.length])(0));
console.log(…结果)您可以简单地使用,利用其函数参数将当前索引作为可选的第二个参数:

var-arr=[1,1,1,2,2,3,3];
var result=arr.map((num,idx)=>{
交换机(idx%3){
案例0:
返回num+5;
案例1:
返回num+2;
案例2:
返回num+3;
}
});
控制台日志(结果)您可以简单地使用,利用其函数参数将当前索引作为可选的第二个参数:

var-arr=[1,1,1,2,2,3,3];
var result=arr.map((num,idx)=>{
交换机(idx%3){
案例0:
返回num+5;
案例1:
返回num+2;
案例2:
返回num+3;
}
});

控制台日志(结果)
如果你真的想容纳一个潜在的flexlble数组,你不应该使用
i+=add.length
而不是
i+=3
?好的,是的,如果这应该成为一个要求,那么@Terry的建议会很有帮助。我相应地编辑了我的答案。如果你真的想容纳一个潜在的灵活数组,你不应该使用
I+=add.length
而不是
I+=3
?好的,是的,如果这应该成为一个要求,那么@Terry的建议会很有帮助。我据此编辑了我的答案。