[英]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.