Javascript 如何使用一个字符串作为参数执行具有两个参数的函数?

Javascript 如何使用一个字符串作为参数执行具有两个参数的函数?,javascript,string,Javascript,String,抱歉,如果我的问题标题与我的问题标题不同。我找不到合适的词,但我的问题是: 假设有这样一个函数: function sum (a, b){ return a+b; } 而不是像这样用两个数的和 const t = sum (2, 3); 如果可能,我想这样使用: var s = "2, 3"; const t = sum (s); 谢谢。您必须split()字符串,以便使用索引从生成的数组中获取数字 请注意:在执行算术运算之前,必须将数字的字符串表示形式转换为数字。否则将发生字

抱歉,如果我的问题标题与我的问题标题不同。我找不到合适的词,但我的问题是:

假设有这样一个函数:

function sum (a, b){
      return a+b;
}
而不是像这样用两个数的和

const t = sum (2, 3);
如果可能,我想这样使用:

var s = "2, 3";
const t = sum (s);
谢谢。

您必须
split()
字符串,以便使用索引从生成的数组中获取数字

请注意:在执行算术运算之前,必须将数字的字符串表示形式转换为数字。否则将发生字符串连接

函数和(str){
str=str.split(',')
变量a=数字(str[0]),b=数字(str[1]);
返回a+b;
}
var s=“2,3”;
常数t=总和;
控制台日志(t)
您必须
split()
字符串,以便使用索引从生成的数组中获取数字

请注意:在执行算术运算之前,必须将数字的字符串表示形式转换为数字。否则将发生字符串连接

函数和(str){
str=str.split(',')
变量a=数字(str[0]),b=数字(str[1]);
返回a+b;
}
var s=“2,3”;
常数t=总和;

控制台日志(t)您可以通过使用
split()
这样做:

function sum (a, b){
      return a+b;
}
const t=(s)=>Number(s.split(',')[0])+Number(s.split(',')[1]);
var s='2,3';

控制台日志(t(s))您可以通过使用
split()
这样做:

function sum (a, b){
      return a+b;
}
const t=(s)=>Number(s.split(',')[0])+Number(s.split(',')[1]);
var s='2,3';
控制台日志(t(s))
函数和(a,b){
返回a+b;
}
var s=“2,3”;
var arrOfNums=s.split(“,”).map(d=>+d);
常数t=总和(…arrOfNums);
控制台日志(t)//5
函数和(a,b){
返回a+b;
}
var s=“2,3”;
var arrOfNums=s.split(“,”).map(d=>+d);
常数t=总和(…arrOfNums);

控制台日志(t)//5你可以试试这个

函数和(a,b){
返回a+b;
}
var string=“2,3”;
var arr=string.split(“,”).map(数字);
常数t=总和(…arr);

控制台日志(t)您可以试试这个

函数和(a,b){
返回a+b;
}
var string=“2,3”;
var arr=string.split(“,”).map(数字);
常数t=总和(…arr);

控制台日志(t)另一种可能的解决方案也可以是使用
eval

var s='2,3';
函数和(a,b){
返回a+b;
}

log(eval(`sum(${s})`));// 另一种可能的解决方案是使用
eval

var s='2,3';
函数和(a,b){
返回a+b;
}

log(eval(`sum(${s})`));//您想要一个函数,该函数接受一个字符串,该字符串的格式为两个数字,以逗号分隔,并返回这两个数字的总和?返回值是字符串还是数字?为什么在示例中使用const?@Hogan
const
应该比
var
let
更好地创建变量,如果可能的话-通常使代码更易于阅读和调试。(真正的问题可能是,如果允许
const
,为什么会有
var
:P)@Hogan第一个问题是肯定的。第二个问题是一个数字。第三个问题:它可以是“var”,而不是任何可以容纳整数的东西…@CertainPerformance——当然——但从代码来看,很明显
s
是常量,我们不知道
t
将用于什么。这表明海报也不知道该用哪一个。我想我真的是在问——为什么对
t
使用const,而不是对
s
使用const,下面的Mamun有正确的答案,但在我看来,这是一个错误的问题:你真的不应该这样做。如果输入是字符串,则应在将其传递到
sum()
func()之前对其进行分析,而不是重新编写函数以接受这样一个奇数输入。是否希望函数接受两个数字格式的字符串,并返回这两个数字的和?返回值是字符串还是数字?为什么在示例中使用const?@Hogan
const
应该比
var
let
更好地创建变量,如果可能的话-通常使代码更易于阅读和调试。(真正的问题可能是,如果允许
const
,为什么会有
var
:P)@Hogan第一个问题是肯定的。第二个问题是一个数字。第三个问题:它可以是“var”,而不是任何可以容纳整数的东西…@CertainPerformance——当然——但从代码来看,很明显
s
是常量,我们不知道
t
将用于什么。这表明海报也不知道该用哪一个。我想我真的是在问——为什么对
t
使用const,而不是对
s
使用const,下面的Mamun有正确的答案,但在我看来,这是一个错误的问题:你真的不应该这样做。如果输入是字符串,则应在将其传递到
sum()
func()之前对其进行解析,而不是重新编写函数以接受这样一个奇怪的输入。如果我无法更改函数sum,该怎么办?@NahPrime--然后给它一个不同的名称,如
SomeOtherSum
@NahPrime,我在答案中添加了另一个解决方案…..请检查。@NahPrime,如果您无法更改该函数,请创建另一个函数,因为这将是无效的,
split
ting
s
变量每次使用
sum
函数,签出我的答案如果我不能更改函数sum怎么办?@NahPrime--然后给它一个不同的名称,比如
SomeOtherSum
@NahPrime,我在答案中添加了另一个解决方案……请检查。@NahPrime,如果你不能更改该函数,那么就创建另一个函数,因为这样做效率不高,
split
ting
s
变量每次使用
sum
函数时,请检查我的答案您究竟为什么使用大括号作为箭头函数