JS中返回多个值/如何从函数外部访问返回值的数组?

时间:2017-10-05 09:55:48

标签: javascript arrays

我是javascript的新手。如何从函数外部访问返回值的数组



var myDob=prompt('Enter the year of birth')

function calcualteMyAge(myDob)
{
    var d =new Date();
    
    var age=(d.getFullYear())-myDob;
    
    
   function calculateRange(age)
    {
        
                   switch(true)
                   {    
                       case  (age>=1 && age<= 12):
                               var range='Kid';
                               return range;
                               break;

                        case  (age>=13 && age<= 19):
                               var range='Teenage';
                               return range;
                               break;

                        case  (age>=20 && age<= 40):
                               var range='Young Adult';
                               return range;
                               break;

                        case  (age>=41 && age<= 59):
                               var range='Adult';
                               return range;
                               break;
                        case  (age>=60 && age<= 100):
                               var range='Seniour Adult';
                               return range;
                               break;

                          default :      
                                var range='!!?';
                                return Range
                                break;
                   }

    }
    
    //Return an array            
    
    
    var ageAndRange = [age, calculateRange(age)];
    return ageAndRange; 
                   
                       
}

    
        var arr=[];
        arr=calcualteMyAge(myDob);

    alert('The age is '+arr[0]);
    alert('Range is '+arr[1]); 
    
 
&#13;
&#13;
&#13;

//从外部功能访问返回值

       var arr=[];
    arr=calcualteMyAge(myDob);

alert('The age is '+arr[0]);
alert('Range is '+arr[1]); 

这是非预期的答案

Nan

 and 

function Range() {[native code]}

哪里出错了??

1 个答案:

答案 0 :(得分:1)

您无法按照自己的意愿从数组中捕获元素。

要么采用传统方式:

var arr = calcualteMyAge(myDob);
var age = arr[0];
var rang = arr[1];

或者使用ES6,您可以使用解构:

const [ age, rang ] = calcualteMyAge(myDob);