我试图在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];
 };