Javascript:将数组中的数据插入函数参数
Posted
技术标签:
【中文标题】Javascript:将数组中的数据插入函数参数【英文标题】:Javascript: Inserting data from an array into function parameter 【发布时间】: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”
谢谢
【问题讨论】:
【参考方案1】:你有两个选择:
-
您的选择,但是,它仅限于两个值。
您需要像 (myArray[0], myArray[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
的类型,但 22
是 number
的类型。将字符串添加到数字中是初学者的常见错误。例如,当您从 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]);
【讨论】:
以上是关于Javascript:将数组中的数据插入函数参数的主要内容,如果未能解决你的问题,请参考以下文章
前端面试 JavaScript— 什么是高阶函数?数组中的高阶函数有哪些?
前端面试 JavaScript— 什么是高阶函数?数组中的高阶函数有哪些?