我对 JavaScript 完全陌生。我第一次学习如何编写函数,但我一直坚持这个。请你帮我弄清楚为什么我的 for 循环只在数组的第一个元素上循环,而不在其他元素上循环。
感谢您的帮助。
查看代码:
我正在尝试编写一个函数,该函数将数字数组作为输入,并返回一个新数组,其中包含输入数组中的每个数字,并增加 1。
function incrementEach (myArray) {
var newArray = [];
for (var i = 0; i < myArray.length; i++) {
newArray.push(myArray + 1);
return newArray;
};
};
var nuArray = incrementEach ([23, 34, 56, 67]);
log (nuArray);
The result I get after running this code is: '[24]'
仅增加并打印数组中的第一个元素。我的循环一定有问题,但我无法弄清楚。请帮助我!
最佳答案
您的代码有几个问题:
- 在 newArray.push 调用中,您将推送整个数组 + 1,而不是单个项目 + 1。
- 您正在循环内返回,这意味着它根本不是循环,并且只运行一次。
这是已修复的代码:
function incrementEach (myArray) {
var newArray = [];
for (var i = 0; i < myArray.length; i++) {
newArray.push(myArray[i] + 1);
};
return newArray;
};
var nuArray = incrementEach ([23, 34, 56, 67]);
log(nuArray);
您还可以使用 map 函数来完成此操作,代码要少得多:
var nuArray = [23, 34, 56, 67].map(function(item) {
return item + 1;
});
关于javascript 函数,将数组作为输入,将每个数组元素增加 1 并返回新数组,增加的值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014379/