簡體   English   中英

根據 Javascript 中的 function 參數獲取值

[英]Get values according function parameters in Javascript

我有下一個function:

 const fun = (nr, car, color, obj) => { const cars = nr - 2; const colors = nr - 1; const objects = nr -3; const main = { c: `${cars}cars.`, co: `${colors}colors.`, obj: `${objects}objects.` }; console.log(car && main.c, color && main.co, obj && main.obj) return `${car && main.c || color && main.co|| obj && main.obj}`; }; console.log(fun(65, false, true, true))

你怎么能注意到,取決於參數fun(65, false, true, true)我應該得到正確的數據。 在這個例子中,我應該得到這個字符串64colors. 62obj. 64colors. 62obj. ,但我不明白這一點。 所以取決於參數我想顯示相應的值。 這個怎么做?

由於您在字符串中使用 or 運算符,因此它只返回結果直到第一個非假值,而不是進一步。 您需要將邏輯拆分為三個部分才能創建正確的字符串

 const fun = (nr, car, color, obj) => { const cars = nr - 2; const colors = nr - 1; const objects = nr -3; const main = { c: `${cars}cars.`, co: `${colors}colors.`, obj: `${objects}objects.` }; console.log(car && main.c, color && main.co, obj && main.obj) return `${car && main.c || ''}${color && main.co || ''}${obj && main.obj || ''}`; }; console.log(fun(65, false, true, true))

main.colors將返回未定義,這是錯誤的,因為它在main object 中不存在。

和 OR || 運算符不會返回一個以上的值。

我更改了 return 語句,因此您可以獲得64colors62objects

 const fun = (nr, car, color, obj) => { const cars = nr - 2; const colors = nr - 1; const objects = nr -3; const main = { c: `${cars}cars.`, co: `${colors}colors.`, obj: `${objects}objects.` }; return `${car && main.c? main.c: ''}${color && main.co? main.co: ''}${obj && main.obj? main.obj: ''}`; }; console.log(fun(65, false, true, true))

暫無
暫無

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

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