簡體   English   中英

如何在沒有任何條件的情況下返回切換參數javascript

[英]how to return toggle parameters without any condition javascript

有人可以幫我解決這個問題嗎? 實際上我接受了采訪,他們對我說要解決這個問題?

我有一個具有單個參數的函數,在函數中我有2個硬編碼值,如var a = 20,b = 30

問題是當我傳遞第一個值時如何返回第二個值,以及當我傳遞第二個參數時如何返回第一個值但是沒有任何條件,如'if','ternary','switch'

function someFn(x){
    var a = 20, b = 30;
    // Some logic
}
// to get - someFn(20) === 30 && someFn(30) === 20

我剛剛發現了一個簡單的邏輯; 只需在函數內添加兩個變量,然后對參數值進行子類化。 簡單

 function toggle(x){ var a = 20, b = 30; return ((a+b)-x) } var return_value = toggle(30) console.log(return_value) var return_value = toggle(20) console.log(return_value) 

雖然我發現您的問題有點不清楚(如果您發布解決問題的嘗試會更好),並且您提供的代碼中存在語法問題,您可以通過使用對象文字作為字典來解決此問題變量動態相互之間:

 function x(n) { let a = 20, b = 30; return { [a]: b, [b]: a }[n] } console.log(x(20)) // 30 console.log(x(30)) // 20 console.log(x(0)) // undefined 

或者,與ES6在一行:

const x = n => ({20:30,30:20}[n])

如果你想獲得花哨 - 使用函數式編程和部分應用的原則:

 const swap = (a, b) => n => ({[a]:b,[b]:a}[n]) const swap20and30 = swap(20, 30) console.log(swap20and30(30)) // 20 console.log(swap20and30(20)) // 30 const swapAandB = swap('A', 'B') console.log(swapAandB('A')) // 'B' console.log(swapAandB('B')) // 'A' 

返回a + bx

您可以添加這兩個數字並減去傳入的數字。

暫無
暫無

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

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