如果这个问题是重复的,我很抱歉,但我真的不知道如何搜索它。对于专业的 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 中做同样的事情。
编辑:我认为在回答之前阅读问题并不那么“难”......我在问它是否可能,我并不是说它是正确的,好看的,或者其他什么。
(顺便说一下,这是 luhn 检查计算)