javascript - 将字符串与数组匹配

标签 javascript arrays google-sheets email flysystem-google-drive

我在匹配数组中的字符串时遇到问题。 B2 列:Lastrow 被定义为“ID”数组。我试图仅将 B2 列:Lastrow 中不可用的唯一条目粘贴到 google 工作表中。问题是..当我运行代码时,它也允许在谷歌工作表中重复。

我通过工作表上的计数公式使用它,但这会导致最大代码运行时错误。因此我将范围用作数组。解决了错误,但无法识别字符串是否唯一。

// Code: List Gmail Label to Google Sheet and save attachment to GDrive
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('Summary');
var label = GmailApp.getUserLabelByName("Caterpiller Account");
var threads = label.getThreads();

function getEmails() {

    for (var i = 0; i < threads.length; i++) {
        var row = sheet.getLastRow() + 1;
        var message = threads[i].getMessages()[0];
        var ID   = message.getId();
        var fulldata = sheet.getRange('B2:B' + row).getValues();

        if (fulldata.indexOf(ID) == -1) {
            var messages=threads[i].getMessages();
            var listID=threads[i].getPermalink();
            var listdate=threads[i].getLastMessageDate();
            var message = threads[i].getMessages()[0];
            var attachment = message.getAttachments();
            var attachmentBlob = message.getAttachments()[0].copyBlob();
            var folder = DriveApp.getFolderById("1ilsecZOexqTWGfAMu5xJDx1pKh3z1US-");

            // EXTRACTOR CODE:
            for (var m=0; m < messages.length; m++) {
                sheet.getRange(row,1).setValue(messages[m].getSubject());
                sheet.getRange(row,2).setValue(ID);  
                sheet.getRange(row,3).setValue(listdate); // Value - Date

                for (var z=0; z<attachment.length; z++) {
                    var file = DriveApp.getFolderById("1ilsecZOexqTWGfAMu5xJDx1pKh3z1US-").createFile(attachmentBlob);
                    //Pending: Weblinkview (basically get permanent url of file) / Or self developed function that gets file through description (where description is email ID)
                }
                row++;
            }
        }
    }
}

预期:独特的条目和更快的代码运行时间。 实际情况:我很糟糕,代码时间还是一样。

最佳答案

bool IsSame(string str,char arr[100])
{
    if(str.lenght!=strlen(arr))return false;
    for(int i=0;i<str.lenght;i++)
    {
        if(str[i]!=arr[i]) return false;
    }
    return true;
}

关于javascript - 将字符串与数组匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54399448/

相关文章:

javascript - Postman 和带有 superagent 的简单 Http 请求之间的区别

javascript 递归函数 concat 不起作用

c - 检查文件内容的程序。有没有更好的办法?

arrays - Lua/LOVE 索引问题

javascript - 在 Breeze 中将字符串解析为谓词

javascript - Object.create( Class.prototype ) 在这段代码中做了什么?

java - 如何正确更新对象数组中的对象变量

python - 如何将包含逗号和引号的 Google 公式添加到 CSV 文件?

javascript - 适用于 Google 表格的 Apps 脚本(onedit 功能)

javascript - 如何判断用户是否空闲并切换标签页?通过脚本(Google 电子表格 - GAS)