我有一个小问题,因为我不太擅长编码,我有一个代码,它对我很好,但我想改进它。当我的代码找不到任何数据时,我希望它能从循环中出来,并显示这条消息--“拍卖师--需求方--验证器”。
for (i = 1; i < dataValues.length; i++) {
if (dataValues[i][11] === 'COMMANDE CONFIRMER' && dataValues[i][12] != '' && dataValues[i][13] === '') {
pasteSheet.appendRow([dataValues[i][0],
dataValues[i][1],
dataValues[i][2],
dataValues[i][3],
dataValues[i][4],
dataValues[i][5],
dataValues[i][6],
dataValues[i][7],
dataValues[i][8],
dataValues[i][9],
dataValues[i][10],
dataValues[i][11]]);
var clearRow = i + 2;
copySheet.getRange('A' + clearRow + ':M' + clearRow).clear();
}
}
// get destination range
var destination = pasteSheet.getRange(pasteSheet.getLastRow() + 1, 1, max, 1);
// clear source values
Browser.msgBox('Commande Confirmer');
}发布于 2022-06-17 22:12:54
尽管您可以脱离for循环,但还有其他方法可以提高效率。比中断循环更重要的是尽量减少资源最繁重的进程。查看您的代码,可以避免重复使用appendRow()。
下面是一种更有效的方法来完成您发布的内容:
// From dataValues, only keep rows that match this criteria:
const filteredValues = dataValues.filter(row => row[11] === 'COMMANDE CONFIRMER' && row[12] !== `` && row[13] === ``)
// If there are rows matching the criteria...
if (filteredValues.length) {
// Get all indexes of these rows...
const indexes = filteredValues.map(item => dataValues.findIndex(row => row.every((cell, index) => cell === row[index]))+3)
// and get each row to only include Columns A - M.
const values = filteredValues.map(item => item.slice(0, 11))
// For each index stored...
indexes.forEach(index => {
// Clear each row at the appropriate index. (Note: If your cells are not formatted, this can be done more efficiently.)
copySheet.getRange(`A${index}:M${index}`).clear()
})
// Set all values at once.
pasteSheet.getRange(pasteSheet.getLastRow()+1, 1, values.length, values[0].length).setValues(values)
}
Browser.msgBox('Commande Confirmer')未评论:
const filteredValues = dataValues.filter(row => row[11] === 'COMMANDE CONFIRMER' && row[12] !== `` && row[13] === ``)
if (filteredValues.length) {
const indexes = filteredValues.map(item => dataValues.findIndex(row => row.every((cell, index) => cell === row[index]))+3)
const values = filteredValues.map(item => item.slice(0, 11))
indexes.forEach(index => copySheet.getRange(`A${index}:M${index}`).clear())
pasteSheet.getRange(pasteSheet.getLastRow()+1, 1, values.length, values[0].length).setValues(values)
}
Browser.msgBox('Commande Confirmer')了解更多:
https://stackoverflow.com/questions/72664666
复制相似问题