javascript 函数,将数组作为输入,将每个数组元素增加 1 并返回新数组,增加的值不起作用

标签 javascript arrays function

我对 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]'

仅增加并打印数组中的第一个元素。我的循环一定有问题,但我无法弄清楚。请帮助我!

最佳答案

您的代码有几个问题:

  1. 在 newArray.push 调用中,您将推送整个数组 + 1,而不是单个项目 + 1。
  2. 您正在循环内返回,这意味着它根本不是循环,并且只运行一次。

这是已修复的代码:

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/

相关文章:

javascript - XrmServiceToolkit.SOAP.RetrieveMultiple 查询 CRM 2016

c#如何在列表框中找到最小值和最大值

javascript - 是否可以创建类似于 typeof 工作方式的函数,例如使用空格而不是括号?

javascript - javascript函数中的所有语句都没有被执行

javascript - 将 Html.EditorFor 替换为 Bootstrap Toggle

javascript - javascript 中日期范围内的每小时分钟数

c++ - char 数组末尾的奇怪字符

arrays - TypeScript 对象作为 C# 中的字典类型

c - 功能和程序分离

javascript - AutoIt 单击 IE 中没有名称或仅 id 类的 onClick Javascript 按钮