gpt4 book ai didi

javascript - 每个的 Google Apps 脚本都会导致错误,但不会

转载 作者:行者123 更新时间:2023-11-30 06:15:54 24 4
gpt4 key购买 nike

我有一个简单的 Google Apps 脚本代码,如下所示:

function throwsError(){
var inboxThreads = GmailApp.getInboxThreads();
var sliceArr = inboxThreads.slice(0, 3);
Logger.log(sliceArr.length);

for each (var thread in sliceArr){
Logger.log(inboxThreads.containsThread(thread));
}
}

function doesNotThrowError(){
var inboxThreads = GmailApp.getInboxThreads();
var sliceArr = inboxThreads.slice(0, 3);
Logger.log(sliceArr.length);

for (var i = 0; i < sliceArr.length; i++){
Logger.log(inboxThreads.containsThread(sliceArr[i]));
}
}

Array.prototype.containsThread = function(thread){
Logger.log("Here");
Logger.log(thread);
return this.filter(function(t){ return t.getId() == thread.getId(); }).length > 0;
}

如函数名称所示,throwsError() 抛出错误 TypeError: Cannot find function getId in object function (thread) {...}.doesNotThrowError() 运行完美,没有问题。它们之间的唯一区别是一个使用 for 循环,而另一个使用 for each 循环。

throwsError()的日志输出如下:

image

似乎我的 sliceArr 数组中只有 3 个项目,但是 containsThread 被调用了 4 次。 (此外,它似乎是第 4 次将 containsThread 函数作为参数传入自身)。知道是什么原因造成的吗?

我的倾向是这是 Google Apps 脚本的错误,但我想在此处查看以防其他人有一些见解。请注意,Google Apps 脚本 works on JS 1.6 with some portions of 1.7 and 1.8

最佳答案

不要为每个使用

来自 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for_each...in

The for each...in statement is deprecated as the part of ECMA-357 (E4X) standard. E4X support has been removed. Consider using for...of instead.

Firefox now warns about the usage of for each...in and it no longer works starting with Firefox 57.

Please see Warning: JavaScript 1.6's for-each-in loops are deprecated for migration help.

关于javascript - 每个的 Google Apps 脚本都会导致错误,但不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56189623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com