Как я могу поместить значение в несколько форматов % из строки формата в приложениях Google?

#google-apps-script

Вопрос:

Я хотел бы попробовать это, как то, что я могу сделать на Python

 stringValue = "Calculate: {0} {0}={1}, {1} {1}={2}".format(1, 2, 4)
(It may result "Calculate: 1 1=2, 2 2=4" in Python)
 

но я не могу найти ничего, что позволило бы мне это сделать, кроме традиционного форматирования с использованием «%d» и нескольких дополнений.

Ответ №1:

К сожалению, похоже , что at Utilities.formatString , n$ не может быть использован. Ссылка На это, Utilities.formatString("Calculate: %1$d %1$d=%2$d, %2$d %2$d=%3$d", 1, 2, 4) не может быть использована.

Итак, в качестве обходных путей, например, как насчет следующих 2 шаблонов?

Образец 1:

В этом шаблоне используется литерал шаблона.

 const obj = {key1: 1, key2: 2, key3: 4};
const stringValue = `Calculate: ${obj.key1} ${obj.key1}=${obj.key2}, ${obj.key2} ${obj.key2}=${obj.key3}`;
console.log(stringValue) 

Образец 2:

В этом шаблоне replace используется.

 const ar = [1, 2, 4];
const stringValue = "Calculate: {0} {0}={1}, {1} {1}={2}".replace(/{([0-9] )}/g, (m, p) => ar[p]);
console.log(stringValue) 

Рекомендации: