Javascript 有谁能提供帮助,让这段代码更有效率吗?
我对编码非常陌生,所以请原谅我犯的新手错误。感谢您的任何帮助 使用GWTAPI,我能够从flicks数据库中提取图像并将它们插入到电子表格中,但我使用的过程似乎不必要地费力 下面是我用来从数据库中提取图像URL的函数:Javascript 有谁能提供帮助,让这段代码更有效率吗?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我对编码非常陌生,所以请原谅我犯的新手错误。感谢您的任何帮助 使用GWTAPI,我能够从flicks数据库中提取图像并将它们插入到电子表格中,但我使用的过程似乎不必要地费力 下面是我用来从数据库中提取图像URL的函数: function kwURL (keyword){ var response = UrlFetchApp.fetch("https://www.flickr.com/search/?q="+keyword) var content=response.getCont
function kwURL (keyword){
var response = UrlFetchApp.fetch("https://www.flickr.com/search/?q="+keyword)
var content=response.getContentText();
var length = content.length;
var count=0;
for (var i=0;i<=length-3;i++){
if(content.substring(i,5+i).equals("src=\"")){
var start=i+5;
count+=1
if(count==4){
for (var e=start;e<length-1;e++){
if (content.substring(e,e+1).equals("\"")){
var end=e
break;
}
}
}
if(count==4){break;}
}
}
Logger.log(content.substring(start,end));
return content.substring(start,end):
}
函数kwURL(关键字){
var response=UrlFetchApp.fetch(“https://www.flickr.com/search/?q=“+关键字)
var content=response.getContentText();
变量长度=content.length;
var计数=0;
对于(var i=0;i屏幕抓取(这基本上就是您在这里所做的)只能作为最后手段使用。对正在获取的网页的任何更改都可能会破坏您的代码。解决您的问题的更好方法是使用为第三方开发人员提供的公开可用API以标准格式请求某些数据。看起来Flickr只提供了以下功能:(注意:我没有使用此API的经验。我只是在谷歌快速搜索后发现它存在)
如果您获取正确的API资源,您应该会返回一个JSON对象,该对象包含一个直接指向图像的URL列表。不再有奇怪的for()
循环,不再有丑陋的(如果magicNumber==4)
或If(magicString=='\'src\')
code。此时,将这些图像插入电子表格应该非常简单。如果它有效,你做得很好!!至少,它可以让你理解你自己的代码。如果它无效,请声明为错误。因为如果你不能清楚地提供你真正需要的内容,投票将被否决
function onChange(){
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
for (var i = 2; i <= numRows + 2; i++) {
var keyword =sheet.getRange(i, 1).getValue();
if(keyword!=""){sheet.insertImage(kwURL(keyword), 2, i);}
}
}