在蟒蛇,返回多個變量,我可以做 -從JavaScript函數返回多個變量?
def function_one(i):
return int(i), int(i) * 2
value, duble_value = function_one(1)
我將如何實現使用javascript如果函數只能返回一個返回值此相同的結果? (我假設使用數組?)
在蟒蛇,返回多個變量,我可以做 -從JavaScript函數返回多個變量?
def function_one(i):
return int(i), int(i) * 2
value, duble_value = function_one(1)
我將如何實現使用javascript如果函數只能返回一個返回值此相同的結果? (我假設使用數組?)
您需要使用數組或對象。
例如:
function test() {
return {foo: "bar", baz: "bof"};
}
function test2() {
return ["bar", "bof"];
}
var data = test();
foo = data.foo;
baz = data.baz;
data = test2();
foo = data[0];
baz = data[1];
另一個選擇(但不是很好):'功能測試(ret){ret.a = 42; ret.b = 43; }' – 2012-04-19 04:00:07
@AtesGoral當傳入「非對象」類型時不起作用(並且如果沒有提供參數,將會是一個討厭的異常)。這也讓我想吐一點。 – 2012-04-19 04:04:29
@pst這假設有人故意傳入一個對象。此方法有其用處,尤其是當您將一組參數從多個來源收集到相同的池(對象)時。 – 2012-04-19 04:13:49
function foo(){
return ["something","something else","something more","something further"];
}
let [a,b,c,d] = foo();
雖然這段代碼可以解決這個問題,[包括解釋](http://meta.stackexchange。 com/questions/114762/explain-completely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – 2017-08-04 23:03:01
技術上你返回一個元組* *在這兩個領域,這仍然是一個單一的值。我不熟悉Javascript,但是如果有某種可以使用的數組或結構,那就很理想。 – Makoto 2012-04-19 03:58:06
如果你要返回的兩個整數是素數,你可以返回他們的產品。 :P – 2012-04-19 03:59:00
真琴的評論是一個非常好的評論。 ** Python只能返回一個值* JavaScript沒有'tuple'類型,因此可以使用Objects(例如'dict')或Arrays(例如'list')作爲替換。另外,JavaScript沒有序列解包(這使得Python中的'x,y = tuple'成爲可能),因此分解必須長期完成。 – 2012-04-19 04:02:07