여러 값을 반품하십시오 JavaScript 에서?

나는 JavaScript 에서 두 개의 값을 반환할 수 있다. 가능하지?

var newCodes = function() {  
    var dCodes = fg.codecsCodes.rs;
    var dCodes2 = fg.codecsCodes2.rs;
    return dCodes, dCodes2;
};
질문에 대한 의견 (3)
해결책

아니, 값이 들어 어레이에서는 확장하지만 돌아갈 수 있었다.

function getValues() {
    return [getFirstValue(), getSecondValue()];
}

그런 다음 그들을 액세스하려면 같은 있습니다.

var values = getValues();
var first = values[0];
var second = values[1];

이번 [ECMAScript 6 구문] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) * 반환 값은 더 직관적으로 데스트루스트로이 수도 있습니다.

const [first, second] = getValues();

설치할 경우 &quot labels"; 각 반환되었습니다 값 (유지하기 위해 간소화하는지) 의 객체를 반환할 수 있습니다.

function getValues() {
    return {
        first: getFirstValue(),
        second: getSecondValue(),
    };
}

그리고 그들을 액세스하려면.

var values = getValues();
var first = values.first;
var second = values.second;

또는 ES6 문법:

const {first, second} = getValues();

[이 표] (https://kangax.github.io/compat-table/es6/), * 지켜보리니 sup&gt &lt, 브라우저 호환성. 현대의 모든 브라우저에서 기본적으로 ie 별도로 수 있지만, 이를 지지하는 구문을 es6 컴파일하십시오 아래로 ie 호환 http://support. 제작 기간 같은 도구를 사용하여 javascript 코드를 [바벨] (https://babeljs.io/) .&lt /sup>;

해설 (5)

이후 1.7 사용하여 Javascript 에서 이렇게 할 수 있습니다. [1] [&quot assignments&quot 데스트루스튜링;;] 참고로, 이러한 사용할 수 없는 Javascript 의 이전 버전 (릴리즈됨 - ECMAScript 3rd disk_b_s10database 괜찼습니다 함께 5 에디션입니다).

동시에 1+ 변수를 지정할 수 있습니다.

var [x, y] = [1, 2];
x; // 1
y; // 2

// or

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

[객체에는 데스트루스튜링 속성 값을 결합된 대표] 을 사용할 수도 있습니다. 3 값을 반환할 객체의 이름을 선택한 후 아웃해야 수준들과 운영까지도:

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

39 와 그렇고, 필리핀, 사실은 't be don& 의해 ecma 스크립트 1, 2.' 복귀하십시오 수 있습니다. 어떤 권능은하나님께 정말로 무슨 일이 없을 것 같다. 표현식에서는 보상으론 기술서임을 - 1, 2, 3 '-' 쉼표 연산자 적용되는 것이 아니라 숫자 리터럴 ('1', '2' 및 '3') 로 평가되는 가치 있는 -' 은 마지막 표현식에서는 순차적으로 결국 3'. # 39 의 1, 2, 3 '는 기능적으로 복귀하십시오 that& 왜' 3 '하지만' 동일한 복귀하십시오 더 바랄 게 없다.

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

[2]: # Browser_compatibility https://developer.mozilla.org/en-us/docs/web/javascript/reference/operators/destructuring_assignment

해설 (7)

그냥 객체를 반품하십시오 ipv6-literal.

function newCodes(){
    var dCodes = fg.codecsCodes.rs; // Linked ICDs  
    var dCodes2 = fg.codecsCodes2.rs; //Linked CPTs       
    return {
        dCodes: dCodes, 
        dCodes2: dCodes2
    };  
}

var result = newCodes();
alert(result.dCodes);
alert(result.dCodes2);
해설 (1)

이후 ES6 이렇게 할 수 있습니다

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

let {dCodes, dCodes2} = newCodes()

{} , 및 속성 값을 dCodes2 다고데스 복귀하십시오 표현식에서는 '이' 대표 '는 {다고데스 것과 같습니다. 다고데스, dCodes2: dCodes2} '.

이 마지막 줄 호출됨 객체에는 대한 할당에서는 성능을 보완한 할당에서는 . 이 같은 이름의 가변 객체의 속성 값을 추출 및 할당합니다. # 39 와 같은 다른 이름을 변수 값을 반품하십시오 you& 할당할 경우, d 'let it 이렇게 할 수 있는 {다고데스: x, dCodes2: y} = 뉴커즈 () '

해설 (0)

Ecmascript 6 dm_ownerdm_owner &quot 데스트루스튜링 assignments"; (강악 언급한 대로) 그래서 모든 브라우저에서 아닌 그냥 firefox), ll you& # 39 라는 값을 배열입니다 캡처하려면 있어야 할 필요 없이 어레이나 객체에는 저들이요 캡처을 위한 용도로만

//so to capture from this function
function myfunction()
{
 var n=0;var s=1;var w=2;var e=3;
 return [n,s,w,e];
}

//instead of having to make a named array or object like this
var IexistJusttoCapture = new Array();
IexistJusttoCapture = myfunction();
north=IexistJusttoCapture[0];
south=IexistJusttoCapture[1];
west=IexistJusttoCapture[2];
east=IexistJusttoCapture[3];

//you'll be able to just do this
[north, south, west, east] = myfunction(); 

Firefox 에서 아웃해야 이미 볼 수 있습니다!

해설 (0)

물론 다른 객체 생성을 사용하여 기여하는 대표 외에 새롭게 도입된 구문은 (ES6) 성능을 보완한 할당에서는.

function fun1() {
  var x = 'a';
  var y = 'b';
  return { x, y, z: 'c' };
  // literally means { x: x, y: y, z: 'c' };
}

var { z, x, y } = fun1(); // order or full presence is not really important
// literally means var r = fun1(), x = r.x, y = r.y, z = r.z;
console.log(x, y, z);

그러나 다행히 이 구문은 폴리필드 수 있는 바벨 또는 기타 js 폴리피예르 크롬과 파이어폭스 브라우저에서 기본적으로 최신 버전의 함께 기존의 작동합니다.

그러나 새로운 개체를 만드는, 메모리 할당 (, 최종 gc 로드) 와 관련이 있어, it 에서 don& # 39, 어느 정도의 성능을 기대할 수 없다. JavaScript 가 가장 높은 것은 언어 개발을 위한 최적의 창조하셨노 애니웨이 신앙이니라 필요한 것은 그 주변 에 있는 보통 객체 또는 기술을 볼 수 있습니다, 퍼팅 등 사용자 사이의 일반적인 성능 요령, Java, JavaScript '로 끝난다.

해설 (2)

이것은 좋은 방법입니다

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

그러면

a().f

4 반품하십시오.

이 코드는 ES6 에서 사용할 수 있습니다.

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

돌아온 이외의 다른 호스트였든 어레이에서는 로케이터로 %s/dbase/ext_table. 권장됨, 사용할 수도 있습니다 모음기 함수 (발견된 것과 유사한 작은 음모가 ):

function a(collector){
  collector(12,13);
}

var x,y;
a(function(a,b){
  x=a;
  y=b;
});

I made a 에스페르프 테스트하려면 세 가지 방법 중 하나를 확인할 빠르다. 가장 빠른 및 모음기 최저속 배열이 있다.

http://jsperf.com/returning-multiple-values-2

해설 (1)

Js, 우리가 쉽게 할 수 있는 하나의 튜플 () 가 있지만, 복귀하십시오 어레이나 객체에는 것을 잊지 마십시오! = &gt. JS 는 콜백하는 '비밀' 이 돌아온 이유가 있고, 여러 언어, 조금 정위되도록 &quot values&quot. 아직 없는 것, 이거 드세요.

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);
};

)

딱! 이것은 간단히 해결하는 또 다른 차원의 문제다.

해설 (0)

할 수도 있습니다.

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

const {d,c,f} = a()
해설 (0)

&Quot Object&quot, 사용할 수 있습니다.

function newCodes(){
    var obj= new Object();
    obj.dCodes = fg.codecsCodes.rs;
    obj.dCodes2 = fg.codecsCodes2.rs;

    return obj;
}
해설 (0)

39 의 all& 올바른. '리턴' 논리적으로 프로세스뿐 왼쪽에서 오른쪽으로, 마지막 값을 반환한다.

function foo(){
    return 1,2,3;
}

>> foo()
>> 3
해설 (1)

꼭 이래야겠어요 제안하세요 최신값 데스트루스튜링 할당에서는 사용할 수 있지만 (smartupdate it& # 39 의 사용자 환경에서 지원되는)

var newCodes = function () {
    var dCodes = fg.codecsCodes.rs;
    var dCodes2 = fg.codecsCodes2.rs;
    return {firstCodes: dCodes, secondCodes: dCodes2};
};
var {firstCodes, secondCodes} = newCodes()
해설 (0)

매우 일반적인 방법은 여러 값을 javascript 객체 리터럴을 복귀하십시오 다음과 같은 항목을 도왔으매 사용하고 있습니다

const myFunction = () => {
  const firstName = "Alireza", 
        familyName = "Dezfoolian",
        age = 35;
  return { firstName, familyName, age};
}

다음과 같은 값을 받기.

myFunction().firstName; //Alireza
myFunction().familyName; //Dezfoolian
myFunction().age; //age

심지어 짧은 운행에서어떠한:

const {firstName, familyName, age} = myFunction();

개별적으로 수 있으며, 다음과 같은

firstName; //Alireza
familyName; //Dezfoolian
age; //35
해설 (0)

내가 아는 두 가지 방법이 있습니다.

  1. Tpc. 어레이입니다 반품하십시오.
  2. 객체로 반품하십시오.

39 의 예를 들어 here& 찾았다.

<script>
// Defining function
function divideNumbers(dividend, divisor){
    var quotient = dividend / divisor;
    var arr = [dividend, divisor, quotient];
    return arr;
}

// Store returned value in a variable
var all = divideNumbers(10, 2);

// Displaying individual values
alert(all[0]); // 0utputs: 10
alert(all[1]); // 0utputs: 2
alert(all[2]); // 0utputs: 5
</script>

<script>
// Defining function
function divideNumbers(dividend, divisor){
    var quotient = dividend / divisor;
    var obj = {
        dividend: dividend,
        divisor: divisor,
        quotient: quotient
    };
    return obj;
}

// Store returned value in a variable
var all = divideNumbers(10, 2);

// Displaying individual values
alert(all.dividend); // 0utputs: 10
alert(all.divisor); // 0utputs: 2
alert(all.quotient); // 0utputs: 5
</script>
해설 (0)

하지만 또 다른 대체 여기서 새로운 추가 나는 아무 것도 없다.

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

이 질문을 할 수 있도록 주요 부품을 누각되었습니다 추가 검색 결과에 따라 전체 리소스에만 이 들려온다.

  • 객체에는 데스트루스튜링 *

39, 객체 데스트루스튜링 전날에약혼자에게 don& 반드시 사용해야 할 수 있을 뿐 아니라 t 동일한 키 값을 다음과 같이 정의하여 이 변수 이름, 다른 변수 이름을 지정할 수 있습니다.

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

//destructuring
let { dCodes: code1, dCodes2: code2 } = newCodes();

//now it can be accessed by code1 & code2
console.log(code1, code2);
  • 어레이입니다 데스트루스튜링 *

39, t need 너회가 don& 값뿐 건너뛰십시오 데스트루스튜링 어레이당 수 있습니다.

const newCodes = () => {  
    //...
    return [ dCodes, dCodes2, dCodes3 ];
};

let [ code1, code2 ] = newCodes(); //first two items
let [ code1, ,code3 ] = newCodes(); //skip middle item, get first & last
let [ ,, code3 ] = newCodes(); //skip first two items, get last
let [ code1, ...rest ] = newCodes(); //first item, and others as an array

39 의 가치가 있는 '잘' it& 오레스트 doesn& 때문에 항상 마지막에 # 39, 다른 모든 것이 아무 것도 할 수 있는 t '자폭 후 취합됩니다 미삭'.

이 질문에 이 추가할 수 있는 몇 가지 가치를 좋겠다:)

해설 (0)

며칠 전 비슷한 기능을 제공하는 여러 조건을 얻을 수 있는 값을 반품하십시오 경식도 나는 내가 만든.

  • It 반환되기를 내가 필요한 다양한 반환 값 디렉토리에만 주어진 조건, 그리고 기타 다른 condition.* .해당 반환 값을 특정 값을

다음은 사례를 내가 그랬지.

  • Function:*
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;

이 질문은 이 전체 집중식으로 자동 응답기가 공유할 수 있는 좋은 외곽진입 얻는 날짜 형식. 이를 수 있다.)

해설 (0)

네 정확히 뭘 잘 할 수 없다. 그런데 뭔가 아래 가능성이 높다고 할 수 있습니다.

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

그럼 메서드를 호출할 때

const {x,y} = multiReturnValues();

console.log(x) ---> 10
console.log(y) ---> 20
해설 (0)