2013-07-27 1 views
0

J'ai une fonction javascript qui retourne deux valeurs:Javascript appelant une fonction qui retourne deux valeurs mais je veux que la première (ou seconde)

function today_date() { 
    var t = new Date(); 
    var day = t.getUTCDay(); 
    var dayW = t.getDay(); // Day of de week (0-6).  
    return [day, dayW]; 
} 

Quand j'appelle cette fonction (dans une autre fonction) Je ne veux qu'une seule de ces valeurs.

function print_anything() { 
    console.log("Today is the " + today_date() + " of the month."); 
} 

Je sais que c'est une question très basique et débutant. Mais comment je fais ça?

+0

Pourquoi ne vous avez pas seulement 2 fonctions différentes? –

+3

Cette déclaration de retour ne fait pas ce que vous pensez qu'il fait. – canon

+0

Pour être plus précis sur ce que le canon vient de dire, votre fonction ne renvoie que dayW. si vous faites 'return stuff1, stuff2;' 'stuff1' et' stuff2' sont évalués, mais seulement 'stuff2' est renvoyé. – quinnirill

Répondre

1

Vous pouvez les retourner dans un objet littéral

function today_date() { 
    var t = new Date(); 
    var day = t.getUTCDay(); 
    var dayW = t.getDay(); // Day of de week (0-6).  
    return { "day" : day, "dayOfWeek" : dayW }; 
} 

et l'accès comme celui-ci

function print_anything() { 
    console.log("Today is the " + today_date().day + " of the month."); 
} 

ou vous pouvez retourner les valeurs un tableau:

function today_date() { 
    var t = new Date(); 
    var day = t.getUTCDay(); 
    var dayW = t.getDay(); // Day of de week (0-6).  
    return [ day, dayW ]; 
} 

puis accéder au premier comme celui-ci

function print_anything() { 
    console.log("Today is the " + today_date()[0] + " of the month."); 
} 
+1

Il est préférable d'utiliser ** "notation par points" ** – iConnor

+0

Bien sûr, réponse mise à jour. –

8

Est-ce que le retour en fait 2 valeurs? C'est nouveau pour moi. De toute façon, pourquoi ne pas le faire?

return {'day': day, 'dayW': dayW }; 

puis:

console.log("Today is the " + today_date().day + " of the month."); 
+0

Et c'est aussi simple que cela ** + 1 ** – iConnor

+0

FWIW, l'instruction return ne retourne pas 2 valeurs. C'est juste l'opérateur de virgule; qui renvoie la dernière valeur dans l'instruction. TLDR, seule la dernière instruction est renvoyée. – Matt

Questions connexes