Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于箭头功能,简单的Javascript代码在Google文档中不起作用_Javascript_Google Apps Script - Fatal编程技术网

由于箭头功能,简单的Javascript代码在Google文档中不起作用

由于箭头功能,简单的Javascript代码在Google文档中不起作用,javascript,google-apps-script,Javascript,Google Apps Script,我曾尝试在谷歌文档中实现一段简单的代码作为脚本。它的功能是验证身份证号码。问题是,这段代码使用的语法对于google文档脚本来说太高级了——它使用了箭头函数,据我所知,google文档不支持箭头函数。试图重写代码根本不起作用——我是一个初学者,虽然知道如何阅读代码,但修改代码对我来说要复杂得多。有人能建议如何将箭头函数改回单独的函数吗 代码如下: function isValidIsraeliID(id) { var id = String(id).trim(); if (id.

我曾尝试在谷歌文档中实现一段简单的代码作为脚本。它的功能是验证身份证号码。问题是,这段代码使用的语法对于google文档脚本来说太高级了——它使用了箭头函数,据我所知,google文档不支持箭头函数。试图重写代码根本不起作用——我是一个初学者,虽然知道如何阅读代码,但修改代码对我来说要复杂得多。有人能建议如何将箭头函数改回单独的函数吗

代码如下:

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;
}