函数可以返回两个值吗?
Can a function return two values? {我在C中遇到过这种情况}任何可能出现在JavaScript中的内容
答案 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