我试图在JavaScript中返回两个值。这可能吗?
var newCodes = function() {
var dCodes = fg.codecsCodes.rs;
var dCodes2 = fg.codecsCodes2.rs;
return dCodes, dCodes2;
};
我试图在JavaScript中返回两个值。这可能吗?
var newCodes = function() {
var dCodes = fg.codecsCodes.rs;
var dCodes2 = fg.codecsCodes2.rs;
return dCodes, dCodes2;
};
当前回答
都是正确的。Return逻辑地从左到右处理并返回最后一个值。
function foo(){
return 1,2,3;
}
>> foo()
>> 3
其他回答
不能,但是你可以返回一个包含你的值的数组:
function getValues() {
return [getFirstValue(), getSecondValue()]
}
然后你可以像这样访问它们:
const [first, second] = getValues()
这被称为解构赋值,每个主要的JS环境都支持它。它等价于如下:
const values = getValues()
const first = values[0]
const second = values[1]
如果你想给每个值赋一个名字,你也可以返回一个对象:
function getValues() {
return {
first: getFirstValue(),
second: getSecondValue(),
}
}
要访问它们:
const {first, second} = getValues()
也就是:
const values = getValues()
const first = values.first
const second = values.second
强烈建议返回一个对象而不是数组,除非值作为简单的元组有意义,例如,坐标对[x, y]。使用数组时,很容易忘记哪个值是哪个值,以后更难添加更多的值,而且使用TypeScript或JSDoc正确输入也稍微困难一些。
你可以使用Object
function newCodes(){
var obj= new Object();
obj.dCodes = fg.codecsCodes.rs;
obj.dCodes2 = fg.codecsCodes2.rs;
return obj;
}
你还可以:
function a(){
var d=2;
var c=3;
var f=4;
return {d:d,c:c,f:f}
}
const {d,c,f} = a()
使用模板字面量' ${}'可以返回一个包含许多值和变量的字符串
如:
var newCodes = function() {
var dCodes = fg.codecsCodes.rs;
var dCodes2 = fg.codecsCodes2.rs;
return `${dCodes}, ${dCodes2}`;
};
它既简短又简单。
我并不是在这里添加新内容,而是另一种替代方法。
var newCodes = function() {
var dCodes = fg.codecsCodes.rs;
var dCodes2 = fg.codecsCodes2.rs;
let [...val] = [dCodes,dCodes2];
return [...val];
};