如何在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对象。