JavaScript:如何从函数返回两个值并在另一个函数中调用这两个变量?

标签 javascript function parsing return

JavaScript:

                function getValue(){
                    var num1 = document.getElementById("firstNum").value;
                    var num2 = document.getElementById("secondNum").value;

                    return (num1, num2);
                }

                function add(){
                    getValue();

                    var result = parseFloat(num1) + parseFloat(num2);

                    return result;
                }

我正在创建的是一个从输入框中获取值的计算器。我遇到的问题是我应该如何调用我在 getValue() 中声明的变量;在我的 add() 中运行;创造值(value)的功能。

感谢您的帮助。

最佳答案

你不能像这样返回两个值:

return (num1, num2);

Javascript 不是这样工作的。如果你想做一个类似 Python 的元组,Javascript 没有具有这种语法的数据结构。

您可以将两个值放入一个数组中并返回该数组,或者将两个值放入一个对象中并返回该对象。

然后,当您调用该函数时,您必须将结果分配给某些东西才能使用返回的结果。

这是返回数组的一种方法:

function getValues(){
    var num1 = document.getElementById("firstNum").value;
    var num2 = document.getElementById("secondNum").value;
    // return array of two values
    return [num1, num2];
}

function add(){
   // get values and assign the returned array to a local variable named values
   var values = getValues();
   return parseFloat(values[0]) + parseFloat(values[1]);
}

或者,您可以将这两个值放入具有命名属性的对象:

function getValues(){
    var num1 = document.getElementById("firstNum").value;
    var num2 = document.getElementById("secondNum").value;
    // return array of two values
    return {firstNum: num1, secondNum: num2};
}

function add(){
   // get values and assign the returned array to a local variable named values
   var values = getValues();
   return parseFloat(values.firstNum) + parseFloat(values.secondNum);
}

对象语法更具描述性和冗长性,因为每个属性都有一个相关的名称,而不仅仅是一个数字索引,但它也不那么紧凑。在这种特殊情况下,您可以使用对象或数组。

ES6 解构更新

当返回数组或对象中的两个值时,您还可以使用 ES6 语法来缩短代码来执行此操作。例如,当返回一个对象时,您可以使用简写语法将属性名称分配为与变量相同的名称,如:

return {num1, num2};

这实际上返回了一个像这样的对象:

{ num1: num1, num2: num2 }

然后,当您调用该函数时,您可以使用解构将这两个值分配给变量:

function getValues(){
    var num1 = document.getElementById("firstNum").value;
    var num2 = document.getElementById("secondNum").value;
    // return array of two values
    return {num1, num2};
}

let {num1, num2} = getValues();
console.log(num1);
console.log(num2);

或者,您可以类似地对数组使用解构:

function getValues(){
    var num1 = document.getElementById("firstNum").value;
    var num2 = document.getElementById("secondNum").value;
    // return array of two values
    return [num1, num2];
}

let [num1, num2] = getValues();
console.log(num1);
console.log(num2);

关于JavaScript:如何从函数返回两个值并在另一个函数中调用这两个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29044427/

相关文章:

c++ - 这是快 : returning a value by function OR saving the value in arguments/parameters

python - 关闭 : retrieve a variable given with the outer function

c# - 从 Wunderground 解析 JSON 预测数据

json - 如何在 Node-RED 函数中解析 JSON

javascript - 我如何找到 :hover css atributes of an element?

javascript - CanJS Observable 和键中的点

javascript - 验证月/年是否大于当前日期

javascript - 如何为俄语+波斯语+中文+英语编写多语言正则表达式验证?

c - 错误 : expected '(' to follow a function. 预期为 ';'

com - 日志解析器错误