Вы проверяете, совпадают ли последующие элементы и те, которые не являются последующими, в результирующем массиве.
Проверьте, есть ли найденное значение в результате, и, если нет, добавьте совпадение, иначе игнорируйте .
Используйте код, подобный
function getVariables() {
var doc = DocumentApp.getActiveDocument();
var str = doc.getText(); //get the text of the document
var m, result=[], rx = /{([^{}]*)}/g;
while (m=rx.exec(str)) {
if (result.indexOf(m[1]) == -1) {
result.push(m[1]);
}
}
result.sort(); // If you really want to sort use this
// Logger.log(result); // View the result
}
Регулярное выражение /{([^{}]*)}/g
соответствует {
, затем захватывает в группу 1 ноль или более символов, отличных от {
и }
. Итак, значение, которое вам нужно, находится в m[1]
. if (result.indexOf(m[1]) == -1)
проверяет, находится ли значение в result
.