Javascript返回和三元操作符与var,可能的
Javascript return and ternary operator with var, possible?
我很抱歉,如果这个问题是重复的,但我真的不知道如何搜索它。对于一个JavaScript编程专家来说,这个问题可能听起来很"奇怪",但我不是。
我基本上是想做一个"一行返回",而不浪费另一行代码。我知道不好,下面的代码也不是用于生产的代码:
var _ = require('underscore');
module.exports = function (digits) {
if (!/^'d+$/.test(digits)) return undefined;
var precomp = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9];
var sum = _.reduce(digits.toString(), function (mem, dgt, idx) {
return mem + (idx % 2 == 0 ? parseInt(dgt) : precomp[dgt]);
}, 0);
return (var mod = sum % 10 == 0) ? 0 : 10 - mod; // Error
};
最后一行抛出错误,因为var
关键字。我记得有时在PHP中也会这样做。
EDIT:我不认为在回答之前阅读问题那么"难"…我问的是它是否可能,我并不是说它是对的,好看的,或者其他什么。
(顺便说一下,这是luhn检查计算)
VariableDeclaration不是表达式。
module.exports = function (digits) {
var mod;
// ...
return (mod = sum % 10 ...
}
我觉得你太用力了。只需将var mod
移到return语句之前。你不会因为这里多了一行代码而被软件之神打死。清晰胜于简洁。
JavaScript不是PHP
var mod = sum % 10;
return (mod === 0) ? 0 : 10 - mod;
我认为你唯一的办法是:
var mod = sum % 10;
return (mod == 0) ? 0 : 10 - mod;
谁在乎多出一行代码呢?为什么这很重要?
到目前为止,我发现你不喜欢任何一个答案。避免首先声明变量的一种方法是这样的,您可能也不喜欢:
return (sum % 10 == 0) ? 0 : 10 - (sum % 10);
这并不需要额外的行,但它确实需要额外的mod。
另一个可能会使代码非常混乱的选项是向函数添加一个虚拟参数:
module.exports = function (digits, mod) {
/* code */
return (mod = sum % 10) == 0 ? 0 : 10 - mod; // Error
};
由于您不将sum
用于任何其他目的,您可以将%
操作符上移,执行:
var _ = require('underscore');
module.exports = function (digits) {
if (!/^'d+$/.test(digits)) return undefined;
var precomp = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9];
var sum = _.reduce(digits.toString(), function (mem, dgt, idx) {
return mem + (idx % 2 == 0 ? parseInt(dgt) : precomp[dgt]);
}, 0) % 10;
return (sum == 0) ? 0 : 10 - sum; // Error
};
相关文章:
- 控制台返回var不是't定义,但它是
- 从var向代码隐藏函数传递值
- 如何通过引用var Using DataTables来进行分页或排序
- jQuery语法添加了var
- 如何将具有文本类型值的var放入jQuery函数中
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 当var==0时,我如何显示一个警报
- javascript中对象构造函数中的var属性与this.properties
- 函数中this和var之间的区别
- JavaScript-的含义:var DndUpload=函数(inputElem){};
- Understanding Javascript scope with "var that = this&qu
- 如何使用javascript var引用Mongo DB集合's字段
- var w = q||问2;这个表达式是什么意思
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- 在jquery函数内部设置来自jquery函数的var;t运行
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 如何使用var名称调用JSON数据
- '这'在使用之前分配给了一个var
- Javascript返回和三元操作符与var,可能的
- 在var声明中使用if-else简写操作符时出错