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


在本教程中,我们将使用JavaScript循环内部的动态变量名。动态变量名意味着它不是预先硬编码的,我们可以根据其他字符串值的需求创建它。

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

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

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

  • 使用变量数组

  • 使用eval()方法

  • 使用Window对象

使用变量数组

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

语法

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

let array = [];
for () {
   array[ key ] = value; // dynamically assign value to the key.
}

示例

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

<html>
<head>
   <title>Use dynamic variable names inside JavaScript loop.</title>
</head>
<body>
   <h2>Use dynamic variable names inside JavaScript loop.</h2>
   <h4>Accessing the different square values from the array.</h4>
   <div id="value"></div>
   <script>
      let value = document.getElementById("value");
      let dynamic = [];
      // storing the squre of even number in dynamic array
      for (let user_id = 0; user_id< 30; user_id += 2) {
         dynamic[user_id] = user_id * user_id;
      }
      value.innerHTML += "square of 4 is - " + dynamic[4] + ". <br/>";
      value.innerHTML += "square of 4 is - " + dynamic[10] + ". <br/>";
      value.innerHTML += "square of 4 is - " + dynamic[22] + ". <br/>";
   </script>
</body>

使用eval()方法

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

语法

eval (JavaScript_expression);

参数

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

示例

下面的示例演示了使用eval()方法创建动态变量。我们有一个用户名数组,我们根据用户名创建变量,访问其值,并将它们渲染到屏幕上。

<html>
<body>
   <h2>Use dynamic variable names inside JavaScript loop.</h2>
   <h4>Creating dynamic variable according to username and storing value into it:</h4>
   <div id="value"></div>
   <script>
      let value = document.getElementById("value");
      let user = ["user1", "user2", "user3", "user4", "user5"];
      // creating variable same as username and storing userid into that.
      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; // to access the dynamic variables

示例

在这个示例中,我们使用了window对象来存储全局变量。我们从用户数组中访问值,并使用window对象将它们设置为全局变量。

<html>
<head>
   <title>Use dynamic variable names inside JavaScript loop.</title>
</head>
<body>
   <h2>Use dynamic variable names inside JavaScript loop.</h2>
   <h4>Creating dynamic variable according to user array and storing to window object.</h4>
   <div id="value"></div>
   <script>
      let value = document.getElementById("value");
      let user = ["user1", "user2", "user3", "user4", "user5"];
      // creating variable same as username and storing into window object.
      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>

结论

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

更新于:2022年7月20日

15K+ 浏览量

开启您的职业生涯

完成课程获得认证

开始学习
广告