Мне интересно, есть ли простой способ получить имя переменных внутри тегированной функции Template. Чтобы быть более понятным, это код:
let date = "2018"; //can be undefined
let description = "my description"; //can be undefined
let age; //can be undefined, and it is here
function processString(parts) {
var res = parts[0];
for (var i=1; i<parts.length; i++) {
if (arguments[i]) res += /*** arguments[i] is the value, I want to append the variable name too***/ arguments[i];
res += parts[i];
}
return res;
}
console.log(processString`
${date}
${description}
${age}
`);
Это результат
2018
my description
20
Я хочу это
date: 2018
description: my description
age: 20
EDIT:
Вся цель состоит в том, чтобы сгенерировать список «необязательных» строк (конечно, исходный код более сложный, фактически он генерирует SQL-подобный запрос), но если переменная arguments [i] определена, я хочу добавить к результирующему строка "variable_name: variable_value" обратите внимание, что я редактировал функцию processString
.
Если есть какое-либо решение, я бы предпочел отредактировать processString
и сохранить в чистоте console.log