Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问Javascript数组中的运算符_Javascript_Arrays - Fatal编程技术网

访问Javascript数组中的运算符

访问Javascript数组中的运算符,javascript,arrays,Javascript,Arrays,我目前有以下javascript数组 array = [2, 3, "+"] 我的目标是编写代码,获取数组的第二个元素(数组[1]),执行元素3(数组[2])到元素1(数组[0])中的任何运算符 例如,代码应该能够执行以下操作 [2,3,“+”]应输出5(3+2) [2,4,“*”]应输出8(4*2) 目前,我可以编写将“3+2”和“4*2”作为字符串返回的代码,但它不会执行该操作 任何帮助都将不胜感激 创建运算符和相应方法的映射,并使用操作数调用该方法,但如果您想要快速而肮脏的解决方案,只需

我目前有以下javascript数组

array = [2, 3, "+"]
我的目标是编写代码,获取数组的第二个元素(数组[1]),执行元素3(数组[2])到元素1(数组[0])中的任何运算符

例如,代码应该能够执行以下操作

[2,3,“+”]
应输出5(3+2)

[2,4,“*”]
应输出8(4*2)

目前,我可以编写将“3+2”和“4*2”作为字符串返回的代码,但它不会执行该操作


任何帮助都将不胜感激

创建运算符和相应方法的映射,并使用操作数调用该方法,但如果您想要快速而肮脏的解决方案,只需执行eval(危险的是输入来自用户)


创建运算符和相应方法的映射,并使用操作数调用该方法,但如果您想要快速而肮脏的解决方案,只需执行eval(危险的是输入来自用户)

您可以使用
eval()
,但与其打开那罐蠕虫,不如使用类似于

var operators = {
  '+': function(a, b) { return a + b; },
  '*': function(a, b) { return a * b; }
};

var result = operators[array[2]](array[0], array[1]);
如果要使用
eval()
,请确保确认操作数仅为数字,并且运算符来自有效运算符的白名单。特别是如果您使用的是用户输入。

您可以使用
eval()
,但与其打开那罐蠕虫,不如使用类似于

var operators = {
  '+': function(a, b) { return a + b; },
  '*': function(a, b) { return a * b; }
};

var result = operators[array[2]](array[0], array[1]);

如果要使用
eval()
,请确保确认操作数仅为数字,并且运算符来自有效运算符的白名单。特别是当您使用用户输入时。

下面的代码很容易实现

var result;
var s;

switch (array[2]) {
    case "+":
        result = array[0] + array[1];
        s = result + "(" + array[0] + " " + array[2] + " " + array[1] + ")";
        break;
    case "-":
        result = array[0] - array[1];
        s = result + "(" + array[0] + " " + array[2] + " " + array[1] + ")";
        break;
    ...
} 

下面的代码很容易实现

var result;
var s;

switch (array[2]) {
    case "+":
        result = array[0] + array[1];
        s = result + "(" + array[0] + " " + array[2] + " " + array[1] + ")";
        break;
    case "-":
        result = array[0] - array[1];
        s = result + "(" + array[0] + " " + array[2] + " " + array[1] + ")";
        break;
    ...
} 

要执行表达式,请使用eval函数,如下所示

eval(array[1] + array[2] + array[0]); 

要执行表达式,请使用eval函数,如下所示

eval(array[1] + array[2] + array[0]);