【发布时间】:2020-10-12 12:07:26
【问题描述】:
所以我有一个包含大约 300 个不同 URL 的电子表格。我在该电子表格中有第二张表格,其中包含大约 50 个域。这个想法是脚本扫描每个 URL 并检查域是否存在于域列表中。如果域存在,请给我找到的域总数。最后一部分正在运行。
但问题是域列表从 10 变为大约 90。所以今天是 50,但下周可能是 85。我不想写 85 的 if 语句。
我在想如果我可以在 include() 中放置一个数组,但我无法让它工作。
if(backlink.includes(startpaginaRows[])){
startpaginaCount++;
}
这是我的脚本:
function backlinkAnalyse() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var backlinks = ss.getSheetByName("Backlinks").activate();
var backlinksRows = ss.getDataRange().getValues();
var startpagina = ss.getSheetByName("Types").activate();
var lastRow = ss.getRange("A1:A").getValues();
var lastRow = lastRow.filter(String).length;
var startpaginaRows = ss.getRange("A2:A"+lastRow).getValues();
var startpaginaCount = 1;
var filteredRows = backlinksRows.filter(function(row){
var backlink = row[1];
if(backlink != ""){
if(backlink.includes("startpagina.nl")){
startpaginaCount++;
}
else if(backlink.includes("startkabel.nl")){
startpaginaCount++;
}
else if(backlink.includes("goedbegin.nl")){
startpaginaCount++;
}
}
})
var startpPaginaCount = startpaginaCount - 1;
ss.getSheetByName("Linkprofiel").activate();
ss.getRange("B2").setValue(startpaginaCount);
}
【问题讨论】:
-
如果这将是一个成熟的项目。确保优化您的代码。你声明了许多你不在任何地方使用的变量:
backlinksRows、backlinks、startpagina。 另外,公认的解决方案不会利用您拥有所有独特网站的工作表。相反,他定义了一个硬拷贝的 url 数组,它根本不可维护,也没有使用Types表。如果您想利用Types工作表并且不想手动更新backlinkPossibilites数组,请查看我的答案。 -
嗨马里奥斯,感谢您的重播。我删除了所有未使用的变量,谢谢。就阵法而言。我更改了这样的代码:
var backlinkPossibilites = ss.getRange("A1:A").getValues();。因此,该数组由Types表中的值组成。回到家后,我会研究您的建议,看起来很有希望。
标签: javascript arrays google-apps-script google-sheets google-sheets-formula