Javascript 如何使这个google sheets脚本代码更短/更快?
这段代码很容易解释。只是有很多范围,我需要独立随机。例如,range('W1:W4')不应该与range('W5:W8')混淆,因此我不能只是随机化range('W1:W80')。任何帮助或建议都会很好!谢谢。目前,代码的运行时间比我希望的要长一点(14秒)Javascript 如何使这个google sheets脚本代码更短/更快?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,这段代码很容易解释。只是有很多范围,我需要独立随机。例如,range('W1:W4')不应该与range('W5:W8')混淆,因此我不能只是随机化range('W1:W80')。任何帮助或建议都会很好!谢谢。目前,代码的运行时间比我希望的要长一点(14秒) 将放入getRange方法中的所有值放入一个数组中,并在其上循环。对于每个range调用getRange和randomize方法 function clickStart() { var ranges = ['T2:T21', 'Y1:
将放入
getRange
方法中的所有值放入一个数组中,并在其上循环。对于每个range
调用getRange
和randomize
方法
function clickStart() {
var ranges = ['T2:T21', 'Y1:Y20', 'Y21:Y40', 'Y41:Y60']; // Add all cells to this array.
var spreadsheet = SpreadsheetApp.getActive();
for (let range of ranges) {
spreadsheet.getRange(range).randomize();
}
};
但是在这一点上,代码仍然需要很长时间,并且在工作时会阻塞线程。将它包装在一个Promise
中,当循环准备好使代码异步时,它就会解决这个问题。这将确保其余代码仍将运行
function clickStart() {
return new Promise(resolve => {
var ranges = ['T2:T21', 'Y1:Y20', 'Y21:Y40', 'Y41:Y60']; // Add all cells to this array.
var spreadsheet = SpreadsheetApp.getActive();
for (let range of ranges) {
spreadsheet.getRange(range).randomize();
}
resolve(spreadsheet);
});
};
将放入
getRange
方法中的所有值放入一个数组中,并在其上循环。对于每个range
调用getRange
和randomize
方法
function clickStart() {
var ranges = ['T2:T21', 'Y1:Y20', 'Y21:Y40', 'Y41:Y60']; // Add all cells to this array.
var spreadsheet = SpreadsheetApp.getActive();
for (let range of ranges) {
spreadsheet.getRange(range).randomize();
}
};
但是在这一点上,代码仍然需要很长时间,并且在工作时会阻塞线程。将它包装在一个Promise
中,当循环准备好使代码异步时,它就会解决这个问题。这将确保其余代码仍将运行
function clickStart() {
return new Promise(resolve => {
var ranges = ['T2:T21', 'Y1:Y20', 'Y21:Y40', 'Y41:Y60']; // Add all cells to this array.
var spreadsheet = SpreadsheetApp.getActive();
for (let range of ranges) {
spreadsheet.getRange(range).randomize();
}
resolve(spreadsheet);
});
};
这工作做得很好!是的,代码仍然需要很长时间,但它更干净!这正是我想要的,谢谢你!这工作做得很好!是的,代码仍然需要很长时间,但它更干净!这正是我想要的,谢谢你!