Javascript forEach(())-迭代、更改并返回新数组中的新数字

Javascript forEach(())-迭代、更改并返回新数组中的新数字,javascript,arrays,Javascript,Arrays,我想返回一个数组,changeArray,每个元素都在“array”+2中 我得到一个空的“changeArray” var数组=[1,2,3,4]; 函数更改数组(数组){ var newNums=[]; array.forEach(函数(编号){ 数字=数字+2; 控制台日志(编号); //返回(newNums); });返回(纽努姆斯); }更改数组(数组)将是该作业的合适工具 var数组=[1,2,3,4]; var newNums=array.map(x=>x+2); consol

我想返回一个数组,changeArray,每个元素都在“array”+2中

我得到一个空的“changeArray”

var数组=[1,2,3,4];
函数更改数组(数组){
var newNums=[];
array.forEach(函数(编号){
数字=数字+2;
控制台日志(编号);
//返回(newNums);
});返回(纽努姆斯);
}更改数组(数组)将是该作业的合适工具

var数组=[1,2,3,4];
var newNums=array.map(x=>x+2);
console.log(newNums)将是该作业的合适工具

var数组=[1,2,3,4];
var newNums=array.map(x=>x+2);

console.log(newNums)此任务的正确功能确实是

但您仍然可以通过一些修改来使用您的函数

var数组=[1,2,3,4];
函数更改数组(输入数组){
var newNums=inputArray.slice();
forEach(函数(编号、索引){
newNums[索引]=数字+2;
});
返回(newNums);
}

log(changeArray(array))此任务的正确功能确实是

但您仍然可以通过一些修改来使用您的函数

var数组=[1,2,3,4];
函数更改数组(输入数组){
var newNums=inputArray.slice();
forEach(函数(编号、索引){
newNums[索引]=数字+2;
});
返回(newNums);
}

log(changeArray(array))你从未在newNums中放入任何内容。。。回归不是一种方法你永远不会把任何东西放进纽纽姆。。。而且return不是一种方法如果你解释一下为什么他的代码不起作用,以及为什么
forEach
回调中的return没有效果,那就更好了。你搞定了!我只是删除了最后两行,并调用了函数。它返回了新数组。万分感谢!我不确定你在回答中说的两个建议中哪一个是正确的。但是第一种,使用
map
,显然是更好的技术。第二个是用来说明在你的尝试中出现了什么错误以及如何修复它。但是
map
显然是这项工作的正确工具。Scott,我想我应该指出我不知道如何填充新数组。出于我的目的,这需要我使用.forEach,第二个只做了很小的修改。谢谢你的意见。非常感谢。我是个新手。如果你解释一下为什么他的代码不起作用,以及为什么
forEach
回调中的返回没有效果,那就更好了。你搞定了!我只是删除了最后两行,并调用了函数。它返回了新数组。万分感谢!我不确定你在回答中说的两个建议中哪一个是正确的。但是第一种,使用
map
,显然是更好的技术。第二个是用来说明在你的尝试中出现了什么错误以及如何修复它。但是
map
显然是这项工作的正确工具。Scott,我想我应该指出我不知道如何填充新数组。出于我的目的,这需要我使用.forEach,第二个只做了很小的修改。谢谢你的意见。非常感谢。我是个新手。由于
数组
的阴影,这段代码比它应该的更混乱。如果该参数的名称不同,则更容易理解。。。当然,正如另一个答案所指出的,
map
是这项工作的正确工具。为清晰起见,更新了代码,感谢您指出@Scottsauyett由于
数组的阴影,此代码比它应该的更混乱。如果该参数的名称不同,则更容易理解。。。当然,正如另一个答案所指出的,
map
是这项工作的正确工具。为清晰起见,更新了代码,感谢您指出@ScottSauyet