函数可以返回两个值吗?

时间:2011-07-04 12:55:37

标签: javascript

函数可以返回两个值吗?

Can a function return two values? {我在C中遇到过这种情况}任何可能出现在JavaScript中的内容

2 个答案:

答案 0 :(得分:6)

您不能返回两个不同的值,但可以返回一个对象或数组。这是完全有效的,只要您记录可能遇到代码的任何其他人的行为。如果两个返回的值真正相关,则会很有帮助。如果不是,则可能难以理解该功能。由于函数的目的通常是执行可能返回离散值的离散动作,因此从对象返回各种各样的值只会被许多人认为是不好的做法。

// As an object
function() {
  return {val1: "value 1", val2: "value 2"};
}

// As an array
function() {
  return ["value 1", "value 2"];
}

答案 1 :(得分:5)

不直接,但没有人可以阻止您返回包含多个元素的Array

function modify(a,b) {
    return [a*2, b*2];
}

var res = multiple(5, 10);

console.log( res );

为了进一步推动这一点,我们可以使用这种“映射”结果来调用另一种方法。 Javascripts .apply()非常方便。

function add(v1, v2) {
    return v1 + v2;
}

我们可以致电

add.apply( null, modify(2,4) );

这实际上就像是

add(4, 8) // === 12