我试图在JavaScript中返回两个值。这可能吗?

var newCodes = function() {  
    var dCodes = fg.codecsCodes.rs;
    var dCodes2 = fg.codecsCodes2.rs;
    return dCodes, dCodes2;
};

当前回答

我们做不到你想做的事。但可能低于这个水平的事情是可以做到的。

function multiReturnValues(){
    return {x:10,y:20};
}

然后在调用方法时

const {x,y} = multiReturnValues();

console.log(x) ---> 10
console.log(y) ---> 20

其他回答

你还可以:

function a(){
  var d=2;
  var c=3;
  var f=4;
  return {d:d,c:c,f:f}
}

const {d,c,f} = a()

从ES6开始,你可以这样做

let newCodes = function() {  
    const dCodes = fg.codecsCodes.rs
    const dCodes2 = fg.codecsCodes2.rs
    return {dCodes, dCodes2}
};

let {dCodes, dCodes2} = newCodes()

返回表达式{dCodes, dCodes2}是属性值的简写,等价于这个{dCodes: dCodes, dCodes2: dCodes2}。

最后一行的赋值叫做对象析构赋值。它提取对象的属性值并将其赋值给同名变量。如果你想把返回值赋给不同名称的变量,你可以这样做let {dCodes: x, dCodes2: y} = newCodes()

我并不是在这里添加新内容,而是另一种替代方法。

 var newCodes = function() {
     var dCodes = fg.codecsCodes.rs;
     var dCodes2 = fg.codecsCodes2.rs;
     let [...val] = [dCodes,dCodes2];
     return [...val];
 };

在JS中,我们可以很容易地返回一个数组或对象的元组,但不要忘记!=> JS是一种面向回调的语言,这里有一个“返回多个值”的小秘密,没有人提到过,试试这个:

var newCodes = function() {  
    var dCodes = fg.codecsCodes.rs;
    var dCodes2 = fg.codecsCodes2.rs;
    return dCodes, dCodes2;
};

就变成了

var newCodes = function(fg, cb) {  
    var dCodes = fg.codecsCodes.rs;
    var dCodes2 = fg.codecsCodes2.rs;
    cb(null, dCodes, dCodes2);
};

:)

砰!这只是解决问题的另一种方法。

几天前,我有类似的要求,从我创建的函数中获得多个返回值。

从许多返回值,我需要它只返回特定的值为一个给定的条件,然后其他返回值对应于其他条件。


以下是我如何做到这一点的例子:

功能:

function myTodayDate(){
    var today = new Date();
    var day = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
    var month = ["January","February","March","April","May","June","July","August","September","October","November","December"];
    var myTodayObj = 
    {
        myDate : today.getDate(),
        myDay : day[today.getDay()],
        myMonth : month[today.getMonth()],
        year : today.getFullYear()
    }
    return myTodayObj;
}

从函数返回的对象获取所需的返回值:

var todayDate = myTodayDate().myDate;
var todayDay = myTodayDate().myDay;
var todayMonth = myTodayDate().myMonth;
var todayYear = myTodayDate().year;

回答这个问题的关键是分享以良好格式获取Date的方法。希望对你有所帮助:)