【问题标题】:Javascript: Inserting data from an array into function parameterJavascript:将数组中的数据插入函数参数
【发布时间】:2017-12-13 08:04:40
【问题描述】:

我只学习了 2 周的 javascript,所以如果我的问题看起来很奇怪/没有意义,我们深表歉意。我正在学习数组的基础知识,为了帮助我学习,我喜欢练习和玩弄代码,但我似乎无法弄清楚这一点。

我创建了一个简单的函数,并希望调用该函数来计算数组中变量的总和。下面是我的代码:

//functions

function simpleCalc (a,b) {
    var result = a + b;
    return result;
}

//array

var myArray = [12,567];

//final calculation

var total = simpleCalc([0],[1]);

alert("The total is " + total);

谁能告诉我如何将数字“12”和“567”输入到函数参数中?这里的结果输出到“01”

谢谢

【问题讨论】:

    标签: javascript arrays function variables


    【解决方案1】:

    你有两个选择:

    1. 您的选择,但是,它仅限于两个值。

    您需要像 (myArray[0], myArray[1]) 那样传递对数组元素的引用

    1. 创建新函数 - 我们称它为 sumValuesInArray(),传递一个 array 并使用 for 循环计算数组内的所有值。

    在此处查看工作示例:

    //functions
    
    function simpleCalc (a,b) {
        var result = a + b;
        return result;
    }
    
    //array
    
    var myArray = [12,567];
    
    //final calculation
    
    var total = simpleCalc(myArray[0],myArray[1]);
    
    //alert("The total is " + total);
    
    
    // OR
    
    function sumValuesInArray(array) {
      var total = 0;
      
      for(i = 0; i < array.length; i++) {
        var element = array[i];
        
        total += element;
      }
      
      return total;
    }
    
    console.log(sumValuesInArray(myArray));

    【讨论】:

    • 感谢您的快速回复。在过去的一个小时左右研究了这个,我想我明白了。所以基本上你在这里所做的是,而不是使用我的自我限制版本,你的版本允许你添加尽可能多或尽可能少的数组变量,并且 JavaScript 仍然可以运行,而无需你修改更多代码?跨度>
    • @Bayzoo 就是这样。您可以根据需要在数组中包含任意数量的元素。都会计算出来的。但请记住,您必须插入正确的值。 "22"22 不同,区别在于类型。 "22"string 的类型,但 22number 的类型。将字符串添加到数字中是初学者的常见错误。例如,当您从 input 中获取 value 并尝试对其求和时。您从input 获取的任何value 都将是typeof string。要将字符串转换为数字,请在确定您的值始终为整数或 parseFloat() 时使用 parseInt()
    • @Bayzoo 另一种将字符串转换为数字的解决方案是一元运算符+。你可以谷歌一下。如果我的回答对你没问题,请采纳。
    【解决方案2】:

    你不指定数组,只指定索引:

    var total = simpleCalc([0],[1]);
    

    因此,它传递了两个数组对象:[0][1]

    它们的连接在这里:

    var result = a + b;
    

    结果是01 字符串。

    要传递myArray 的前两个元素,试试吧:

    var total = simpleCalc(myArray[0],myArray[1]);
    

    【讨论】:

    • 第一个语句是否发送 2 个未命名数组,每个数组有 1 个元素?喜欢;第一个参数是未命名数组,人口:1,第一个元素值为0第二个参数是一个未命名数组第一个元素值为1。
    • 哇,它一天比一天柔和:D
    【解决方案3】:

    您需要通过索引访问数组值。您可以使用带有数组名称的方括号来执行此操作。如果您传递带有数字的括号,则您正在创建新数组。

    应该是:

     var total = simpleCalc(myArray[0],myArray[1]);
    

    【讨论】:

      猜你喜欢
      • 2018-02-01
      • 2018-08-13
      • 2013-03-28
      • 1970-01-01
      • 2013-04-11
      • 2021-05-14
      • 2016-02-05
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多