繁体   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