Храните слова и цвета вместе, и используйте вместе.
let dictionary = {
stop_words: [
{ word: "Not_Malicious", color_code: "#ea4300" },
{ word: "NOT_Virus", color_code: "#ea0035" },
{ word: "NOT_Fake_Message", color_code: "#004335" },
{ word: "NOT_Misleading", color_code: "#ea4005" },
{ word: "NOT_Sound", color_code: "#e00335" },
{ word: "NOT_JSalert", color_code: "#0a0305" },
],
};
// Тут, для производительности, можно предварительно сделать все TextStyle вместо color_code
function _1() {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// range диапазон поиска
let range = sheet.getRange("E:E").getValues();
range.forEach((item, row) => {
for (let column = 0; column < item.length; column++) {
if (typeof item[column] === "string" && item[column] != "") {
let richText = SpreadsheetApp.newRichTextValue().setText(item[column]);
// item[column] текст ячейки
dictionary.stop_words.forEach(({word, color_code}) => {
let arr = searchIndex(
word.toLocaleLowerCase(),
item[column].toLocaleLowerCase()
);
let color = SpreadsheetApp.newTextStyle()
.setForegroundColor(color_code)
.build();
arr.forEach((ind) => {
richText.setTextStyle(ind.startIndex, ind.endIndex, color);
});
sheet
.getRange(row + 1, column + 1)
.setRichTextValue(richText.build());
});
}
}
});
}
// ... остальной код