由于箭头功能,简单的Javascript代码在Google文档中不起作用
我曾尝试在谷歌文档中实现一段简单的代码作为脚本。它的功能是验证身份证号码。问题是,这段代码使用的语法对于google文档脚本来说太高级了——它使用了箭头函数,据我所知,google文档不支持箭头函数。试图重写代码根本不起作用——我是一个初学者,虽然知道如何阅读代码,但修改代码对我来说要复杂得多。有人能建议如何将箭头函数改回单独的函数吗 代码如下:由于箭头功能,简单的Javascript代码在Google文档中不起作用,javascript,google-apps-script,Javascript,Google Apps Script,我曾尝试在谷歌文档中实现一段简单的代码作为脚本。它的功能是验证身份证号码。问题是,这段代码使用的语法对于google文档脚本来说太高级了——它使用了箭头函数,据我所知,google文档不支持箭头函数。试图重写代码根本不起作用——我是一个初学者,虽然知道如何阅读代码,但修改代码对我来说要复杂得多。有人能建议如何将箭头函数改回单独的函数吗 代码如下: function isValidIsraeliID(id) { var id = String(id).trim(); if (id.
function isValidIsraeliID(id) {
var id = String(id).trim();
if (id.length > 9 || id.length < 5 || isNaN(id)) return false;
// Pad string with zeros up to 9 digits
id = id.length < 9 ? ("00000000" + id).slice(-9) : id;
return Array.from(id, Number)
.reduce((counter, digit, i) => {
const step = digit * ((i % 2) + 1);
return counter + (step > 9 ? step - 9 : step);
}) % 10 === 0;
}
但我还是错了
谢谢 只需将箭头函数替换为函数:
.reduce(function(counter, digit, i) {
编辑:V8发动机目前支持箭头功能。见:
Google Apps Script GAS还不支持ECMAScript 2015 ES6。不幸的是,在当前阶段,无法使用从ES6添加的功能。因此,需要将这些函数转换为气体。在脚本中,也使用了这样的函数。那么这个修改呢
修改点:
箭头功能不能用于气体。
CertainPerformance和NielsNet提到了这一点。
Array.from不能用于GAS。
这里,我使用了Array.map。
修改脚本:
参考资料:
如果这个结果不是你想要的,请告诉我。我想修改它。…您是否尝试过使用标准函数而不是箭头函数?我不确定,但常数也可能是一个问题。如果是这样的话,用varconst替换就可以了,不用了谢谢!这实际上是我尝试的第一个解决方案,但它没有解决语法问题……这个解决方案非常有效!非常感谢你@雅伦湿婆欢迎你。谢谢你让我知道。如果您的问题已解决,请按“接受”按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果你找不到按钮,尽管告诉我。
.reduce(function(counter, digit, i) {
function isValidIsraeliID(id) {
var id = String(id).trim();
if (id.length > 9 || id.length < 5 || isNaN(id)) return false;
// Pad string with zeros up to 9 digits
id = id.length < 9 ? ("00000000" + id).slice(-9) : id;
return Array.map(id, Number) // Modified
.reduce(function(counter, digit, i) { // Modified
const step = digit * ((i % 2) + 1);
return counter + (step > 9 ? step - 9 : step);
}) % 10 === 0;
}