Nie można jednoznacznie zwrócić dwóch zmiennych z pojedynczej funkcji, ale istnieją różne sposoby łączenia tych dwóch zmiennych w celu ich zwrócenia.
Jeśli nie trzeba przechowywać zmienne rozdzielone, można po prostu złączyć je bezpośrednio tak:
function test(){
var h = 'Hello';
var w = 'World';
var hw = h+w
return (hw);
}
var test = test();
alert(test);
Byłoby to alert „HelloWorld”. (Jeśli chciał przestrzeń tam, należy użyć var hw = h+" "+w
zamiast
Jeśli trzeba zachować dwóch zmiennych rozdzielonych, można umieścić je na tablicy tak:.
function test(){
var h = "Hello";
var w = "World";
var hw=[h,w];
return hw;
}
var test = test();
alert(test);
Pozwala to na h
i w
wartości są nadal dostępne pojedynczo jako test[0]
i test[1]
, odpowiednio, jednak alert (test) tutaj wyświetli "Hello, World" ze względu na sposób alertu() obsługuje tablice (to znaczy, że drukuje listę oddzielonych przecinkami każdy element w tablicy sekwencyjnie) .Jeśli chcesz uzyskać ten sam wynik co przykładowy kod, musisz użyć czegoś takiego jak join()
. join()
skonstruuje ciąg znaków z tablicy, pobiera jeden argument, który służy jako separator między elementami. Aby odtworzyć dwa alerty z mojego pierwszego przykładu, musisz użyć odpowiednio alert(test.join(""))
i alert(test.join(" ")
.
Mój przykład może zostać nieznacznie skrócony, pomijając tworzenie zmiennej hw
i bezpośrednio zwracając tablicę. W takim przypadku test() wyglądałby następująco:
function test(){
var h="Hello";
var w="World";
return [h, w];
}
Może to być również wykonane jako obiekt z return { h : h, w : w };
, w którym to przypadku uzyskania dostępu do pojedynczych zmiennych jak test.h i test.w odpowiednio.
Również: http: // stackoverflow.com/questions/10221445/return-multiple-variables-from-a-javascript-function – bfavaretto