JavaScript:为循环动态创建变量
JavaScript: Dynamically Creating Variables for Loops
如何使用for循环动态创建变量并返回。
function createVariables()
{
for ( i=0; i<=20; i++ )
{
var account = i;
return var account + i;
}
}
目标是获得以下结果:
var account1;
var account2;
var account3; and etc.....
您应该使用一个数组:
function createVariables(){
var accounts = [];
for (var i = 0; i <= 20; ++i) {
accounts[i] = "whatever";
}
return accounts;
}
然后您可以访问accounts[0]
到accounts[20]
。
我知道如何做到这一点的唯一方法是使用JavaScript eval
函数。
类似eval("account" + 1 + "='some value'");
http://www.w3schools.com/jsref/jsref_eval.asp
然而,我认为@Domenic有一个更好的答案。
我不确定是否要回答一个老问题,但我在自己寻找答案时偶然发现了这个问题。
for (var i = 1; i < 11; i++) { // Creating 10 objects
window["Object"+i] = new Object();
}
console.log(Object7); // is not undefined
上面的代码在创建动态对象时循环到10,如上所述https://www.codecademy.com/en/forum_questions/51068e93f73ad4947a005629
我发现这是最简单的解决方案
for (var i = 0; i < 10; i++) {
this["RONAK"+i] = "MY VAL";
}
输出
RONAK0 = "MY VAL"
RONAK1 = "MY VAL"
RONAK2 = "MY VAL"
...
RONAK9 = "MY VAL"
您可以使用eval((方法在执行传递给它的JavaScript语句时声明动态变量。
function createVariables()
{
for ( i=0; i<=20; i++ )
{
var str ="account"+ i+" = undefined";
//Declaring and Setting dynamic variable to undefined using eval
eval(str);
}
}
createVariables();
let etc = { name: 'foobar', city: 'xyz', company: 'companyName' };
Object.keys(etc).forEach(key=>{
window[`${key.toUpperCase()}`] = new Object(`${etc[`${key}`]}`)
});
console.log("-->"+NAME) //foobar
这与@whatevermike描述的类似,但它在NodeJS中不起作用,因为它使用了window。:(
function createVariables() {
var accounts = [];
for (var i = 0; i <= 20; ++i) {
accounts[i] = "merhaba" + i;
}
return accounts;
}
以下代码将实际创建变量,而不是创建@Domenic 提出的这种哈希表
function createVariables(){
var varName = "accounts";
for (var i = 0; i <= 20; ++i) {
eval('var ' + varName + i + ' = ' + '"whatever"' + ';');
}
return accounts;
}
我对我用代码迭代变量的方式感到非常自豪,我打算分享它,但我想我只会向你展示它的修改版本。
function variableBuilder() {
let i = 0;
while (i <= 20) {
let accountVariable = "account".concat(i);
`// variable can even be reassigned here`
console.log(accountVariable);
i++;
}
}
您可以在我建议的位置使用变量作为迭代变量标识符;我使用这种方法来构建DOM节点,以创建动态构建的HTML表。
我们可以使用地图。
var map = {};
for (var i = 0; i < 10; ++i) {
map["nutrient" + i] = "some stuff" + i;
}
console.log(map)
结果:
{
nutrient0: 'some stuff0',
nutrient1: 'some stuff1',
nutrient2: 'some stuff2',
nutrient3: 'some stuff3',
nutrient4: 'some stuff4',
nutrient5: 'some stuff5',
nutrient6: 'some stuff6',
nutrient7: 'some stuff7',
nutrient8: 'some stuff8',
nutrient9: 'some stuff9'
}
最简单的方法是使用eval并将变量声明行写入符合条件的循环中
for (let i = 0; i <= 3; i++) {
eval(`var variable${i}=${i}`);
eval(`console.log(variable${i})`)
}
//Output:
0
1
2
3
您还可以控制台记录外部的值,因为它们使用var关键字
相关文章:
- 根据发送到javascript中函数的参数创建变量名
- 基于循环创建变量
- 创建变量并将其动态命名为javascript
- 使用For each循环-jquery创建变量
- 如何使用html5和javascript创建变量步骤
- 从另一个函数创建变量到 JavaScript 数组
- 有没有办法在javascript或jquery中创建变量选择器
- 从 JavaScript 中的参数创建变量名称
- 如何在 Javascript 中从数组创建变量数组
- jquery创建变量并使用它来加载 - laravel
- 使用 Javascript 创建变量数组(动态,下拉)
- 创建变量后,对定义的变量是坏的/好的/可选的
- HTML5 Web 存储创建变量
- 如何在 for 循环中创建变量
- 在 JQuery/Javascript 中设置和使用动态创建变量的属性
- 在 JavaScript 循环中创建变量
- 从 javascript 中的另一个变量名称创建变量键
- JavaScript 创建变量并使用循环为它们赋值
- 正确的格式结构创建变量
- JavaScript-如何使用递归创建变量嵌套循环