1 回答
TA贡献1890条经验 获得超9个赞
问题(性能缓慢):
setBackground在每个单元格的循环中使用。使用数组来存储重复项。
解决方法:
创建一个输出数组并
setBackgrounds()改为使用。使用对象
{}存储重复项如果以上解决方案还是很慢,可以使用sheets api批量设置背景
片段:
function findDupes(arr){
var valObj = {};
var duplicates = {};
arr.forEach(function(row){
var el = row[0];
if(el in valObj){
duplicates[el] = 1
} else {
valObj[el] = 1;
}
})
return duplicates;
}
//....
valuesArray = removeEmptyCells(valuesArray);
//valuesArray = [].concat.apply([], valuesArray); Removed
var duplicates = findDupes(valuesArray);
//.....
rangeArray.setBackgrounds(
valuesArray.map(function(row){
return [(row[0] in duplicates) ? "#b7e1cd" : null]
})
)
添加回答
举报
