如何在 JavaScript 循环中创建动态变量名?

front end technologyjavascriptweb development

在本教程中,我们将在 JavaScript 循环中使用动态变量名。动态变量名意味着它尚未硬编码,我们可以根据需要从其他字符串值中创建它。

在 JavaScript 中,动态变量的应用并不多,但在开发实时应用程序时需要它。例如,在开发任何应用程序时,程序员希望将任何与用户相关的实体存储到与用户名同名的变量中。在这种情况下,程序员需要在 JavaScript 中创建动态变量。

用户还可以参考以下示例来了解动态变量的要求。假设程序员想要在本地存储中存储一些值,并且他们需要每个键的唯一名称。要创建唯一键,他们必须使用动态变量。

因此,动态变量有很多应用。下面,我们实现了创建动态变量的不同方法。

  • 使用变量数组

  • 使用 eval() 方法

  • 使用 Window 对象

使用变量数组

创建动态变量的最简单的 JavaScript 方法是创建一个数组。在 JavaScript 中,我们可以定义动态数组而不定义其长度并将其用作 Map。我们可以使用数组将值与键进行映射,也可以使用键访问该值。

语法

用户可以按照以下语法创建动态数组来存储动态变量。

let array = [];
for () {
   array[ key ] = value; // 动态地将值分配给键。
}

示例

在下面的示例中,我们使用了动态数组来创建变量。我们将数字视为键,将平方视为值,从而存储了一些偶数的平方。

<html>
<head>
   <title>Use dynamic variable names inside JavaScript loop.</title>
</head>
<body>
   <h2>在 JavaScript 循环中使用动态变量名。</h2>
   <h4>从数组访问不同的平方值。</h4>
   <div id="value"></div>
   <script>
      let value = document.getElementById("value");
      let dynamic = [];
      // 将偶数的平方存储在动态数组中
      for (let user_id = 0; user_id< 30; user_id += 2) {
         dynamic[user_id] = user_id * user_id;
      }
      value.innerHTML += "4 的平方是 - " + dynamic[4] + ". <br/>";
      value.innerHTML += "4 的平方是 - " + dynamic[10] + ". <br/>";
      value.innerHTML += "4 的平方是 - " + dynamic[22] + ". <br/>";
   </script>
</body>

使用 eval() 方法

在 JavaScript 中,eval() 方法评估我们作为参数传递的表达式。它获取 JavaScript 表达式的字符串并对其进行评估。在我们的例子中,我们将传递格式化的字符串来创建动态变量。

语法

eval (JavaScript_expression);

参数

  • JavaScript_expression − 它是字符串格式的 JavaScript 表达式。用户还可以传递格式化的字符串。

示例

以下示例演示了如何使用 eval() 方法创建动态变量。我们有用户名数组,我们根据用户名创建变量并访问其值,然后将其呈现在屏幕上。

<html>
<body>
   <h2>在 JavaScript 循环中使用动态变量名。</h2>
   <h4>根据用户名创建动态变量并将值存入其中:</h4>
   <div id="value"></div>
   <script>
      let value = document.getElementById("value");
      let user = ["user1", "user2", "user3", "user4", "user5"];
      // 创建与用户名相同的变量并将用户 ID 存储到其中。
      for (let user_id = 0; user_id<user.length; user_id++) {
          eval('var ' + user[user_id] + '= ' + user_id + ';');
      }
      value.innerHTML += "value for user1 is - " + user1 + ". <br/>";
      value.innerHTML += "Value for user5 is - " + user5 + ". <br/>";
   </script>
</body>
</html>

使用 Window 对象

每个浏览器都默认定义 window 对象。用户可以使用 window 对象访问代码中的每个全局变量。此外,程序员可以使用格式化的字符串和 window 对象创建动态变量。

语法

用户可以按照以下语法将变量存储在 window 对象中。

for ( let i = 0; i< 10; i++ ) {
   window[ ‘user’ + i ] = value;
}
let val = user0; // 访问动态变量

示例

在本例中,我们使用窗口对象来存储全局变量。我们使用窗口对象访问用户数组中的值,并将它们设为全局变量。

<html>
<head>
   <title>在 JavaScript 循环中使用动态变量名。</title>
</head>
<body>
   <h2>在 JavaScript 循环中使用动态变量名。</h2>
   <h4>根据用户数组创建动态变量并存储到窗口对象中。</h4>
   <div id="value"></div>
   <script>
      let value = document.getElementById("value");
      let user = ["user1", "user2", "user3", "user4", "user5"];
      // 创建与 username 相同的变量并存储到 window 对象中。
      for (let user_id = 0; user_id<user.length; user_id++) {
         window[ user[user_id] ] = "hello " + user[user_id];
      }
      value.innerHTML += "value for user 1 is - " + user1 + ". <br/>";
      value.innerHTML += "Value for user 5 is - " + user5 + ". <br/>";
   </script>
</body>
</html>

结论

本教程有三种不同的方法来在循环内创建动态变量。第一种方法是最简单和最常用的。此外,如果用户想要创建全局变量,他们可以使用第三种方法,即使用窗口对象。


相关文章