如何将字符串存储在包含模板文字 (Javascript) 的数组中?
How to store strings in an array that include Template Literals (Javascript)?
我正在尝试将大量文本存储在一个数组中(这样我就可以使用一个值轻松地将其提取出来)。
问题出在我想使用模板文字的字符串中,因此字符串会根据输入而变化(例如,一旦他们添加了他们的名字,它就会使用他们的名字。
如果我在函数中包含该字符串,我可以毫无问题地运行它。例如:
textbox.textContent = `what does ${nameTemp} do?`;
没问题,它会将 "nameTemp" 更改为用户输入的内容。但是下面这个没有!它总是 returns "tim" 作为名称(默认值为 "nameTemp")
textbox.textContent2 = Title[1];
您可以在函数 saveName() 的下面代码中看到第一行(带有包含模板文字的完整字符串)确实有效。但是下面的行使用数组中的字符串(带有模板文字in) 不更新。它使用默认字符串“tim”。
我究竟做错了什么?我怎样才能最好地将字符串存储在具有可更改元素的数组中?在此先感谢您的任何建议。
var nameTemp = `tim`;
let Title = [];
Title[0] = "What are you called?";
Title[1] = `what does ${nameTemp} do?`;
const input = document.createElement('input');
input.type = "text";
input.id ="nameText";
input.className +='inputStyle';
function addNameInput()
{
container.appendChild(input);
}
function saveName()
{
if (nameText.value !== null)
{
nameTemp = nameText.value;
textbox.textContent = `what does ${nameTemp} do?`; //This works, it displays the inputed name
textbox.textContent2 = Title[1]; // This will always display 'tim'
nameText.parentNode.removeChild(nameText);
incrementState();
}
}
Javascript 模板字符串在您首次创建时进行评估,它们不会神奇地更新。 Title[1]
是用 "tim"
初始化的,即使您更改了 nameTemp
变量,它也会保持不变。如果您想将模板字符串存储在数组中,那么您可以存储一个 returns 模板字符串的函数,例如:
Title[1] = () => `what does ${nameTemp} do?`;
然后你可以通过
获取值
textbox.textContent2 = Title[1]();
我正在尝试将大量文本存储在一个数组中(这样我就可以使用一个值轻松地将其提取出来)。 问题出在我想使用模板文字的字符串中,因此字符串会根据输入而变化(例如,一旦他们添加了他们的名字,它就会使用他们的名字。
如果我在函数中包含该字符串,我可以毫无问题地运行它。例如:
textbox.textContent = `what does ${nameTemp} do?`;
没问题,它会将 "nameTemp" 更改为用户输入的内容。但是下面这个没有!它总是 returns "tim" 作为名称(默认值为 "nameTemp")
textbox.textContent2 = Title[1];
您可以在函数 saveName() 的下面代码中看到第一行(带有包含模板文字的完整字符串)确实有效。但是下面的行使用数组中的字符串(带有模板文字in) 不更新。它使用默认字符串“tim”。 我究竟做错了什么?我怎样才能最好地将字符串存储在具有可更改元素的数组中?在此先感谢您的任何建议。
var nameTemp = `tim`;
let Title = [];
Title[0] = "What are you called?";
Title[1] = `what does ${nameTemp} do?`;
const input = document.createElement('input');
input.type = "text";
input.id ="nameText";
input.className +='inputStyle';
function addNameInput()
{
container.appendChild(input);
}
function saveName()
{
if (nameText.value !== null)
{
nameTemp = nameText.value;
textbox.textContent = `what does ${nameTemp} do?`; //This works, it displays the inputed name
textbox.textContent2 = Title[1]; // This will always display 'tim'
nameText.parentNode.removeChild(nameText);
incrementState();
}
}
Javascript 模板字符串在您首次创建时进行评估,它们不会神奇地更新。 Title[1]
是用 "tim"
初始化的,即使您更改了 nameTemp
变量,它也会保持不变。如果您想将模板字符串存储在数组中,那么您可以存储一个 returns 模板字符串的函数,例如:
Title[1] = () => `what does ${nameTemp} do?`;
然后你可以通过
获取值textbox.textContent2 = Title[1]();