Return multiple values in JavaScript?

前端 未结 20 2198
暖寄归人
暖寄归人 2020-11-22 13:17

I am trying to return two values in JavaScript. Is this possible?

var newCodes = function() {  
    var dCodes = fg.codecsCodes.rs;
    va         


        
20条回答
  •  余生分开走
    2020-11-22 14:15

    You can do this from ECMAScript 6 onwards using arrays and "destructuring assignments". Note that these are not available in older Javascript versions (meaning — neither with ECMAScript 3rd nor 5th editions).

    It allows you to assign to 1+ variables simultaneously:

    var [x, y] = [1, 2];
    x; // 1
    y; // 2
    
    // or
    
    [x, y] = (function(){ return [3, 4]; })();
    x; // 3
    y; // 4
    

    You can also use object destructuring combined with property value shorthand to name the return values in an object and pick out the ones you want:

    let {baz, foo} = (function(){ return {foo: 3, bar: 500, baz: 40} })();
    baz; // 40
    foo; // 3
    

    And by the way, don't be fooled by the fact that ECMAScript allows you to return 1, 2, .... What really happens there is not what might seem. An expression in return statement — 1, 2, 3 — is nothing but a comma operator applied to numeric literals (1 , 2, and 3) sequentially, which eventually evaluates to the value of its last expression — 3. That's why return 1, 2, 3 is functionally identical to nothing more but return 3.

    return 1, 2, 3;
    // becomes
    return 2, 3;
    // becomes
    return 3;
    

提交回复
热议问题