簡體   English   中英

從 JavaScript 函數返回多個值

[英]Returning multiple values from a JavaScript function

我是 JavaScript 的新手,我確信這非常簡單:我希望根據 switch 語句中的單個輸入設置多個值。 我知道在 Java 中我會使用 getter/setter 和/或將值傳遞到數組中並根據其索引選擇相關字段。

 let custCode; let loyaltyCode; let id; const setCustomerCodes = () => { switch (customerType) { case "NEW": (custCode = "19202"), (loyaltyCode = "X78"), (id = "396550"); break; case "CURRENT": (custCode = "93893"), (loyaltyCode = "X89"), (id = "396438"); break; case "LOYAL": (custCode = "76353"), (loyaltyCode = "X90"), (id = "396440"); break; default: (custCode = "02902"), (loyaltyCode = "X80"), (id = "396637"); break; } return //all values as an object?; }; module.exports = { //export the values to use in separate file };

然后我只想在單獨的 JS 文件中使用每個字段的值。 我知道這是非常基本的; 當我可以在 VS Code 中進行調試時更容易

這是一種可能的解決方案:

 let custCode; let loyaltyCode; let id; const setCustomerCodes = (customerType) => { switch (customerType) { case "NEW": (custCode = "19202"), (loyaltyCode = "X78"), (id = "396550"); break; case "CURRENT": (custCode = "93893"), (loyaltyCode = "X89"), (id = "396438"); break; case "LOYAL": (custCode = "76353"), (loyaltyCode = "X90"), (id = "396440"); break; default: (custCode = "02902"), (loyaltyCode = "X80"), (id = "396637"); break; } return {custCode, loyaltyCode, id} }; let x = setCustomerCodes("NEW"); console.log(x); console.log(x.custCode); console.log(x.loyaltyCode); console.log(x.id);

正如@VLAZ 所建議的,您只需將 {} 中的所有值作為單個對象返回。 然后,我定義的x變量可用於獲取各個值(如單獨的console.log(...)條目中所示。

請注意,您確實需要為customerType傳入一個值,因此我將其作為參數包含在內

我認為你可以返回一個對象。

 const setCustomerCodes = () => { switch (customerType) { case "NEW": return {custCode: "19202", loyaltyCode: "X78", id: "396550"} case "CURRENT": return {custCode: "93893", loyaltyCode: "X89", id: "396438"}; case "LOYAL": return {custCode: "76353", loyaltyCode: "X90", id: "396440"}; default: return {custCode: "02902", loyaltyCode: "X80", id: "396637"}; } }; const { custCode, loyaltyCode, id, } = setCustomerCodes() module.exports = { custCode, loyaltyCode, id, };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM