【问题标题】:Create variables in a JavaScript loop在 JavaScript 循环中创建变量
【发布时间】:2014-11-21 20:31:09
【问题描述】:

我在 PHP 中有一个数组

vars = array('Date','Name','Number');

使用“vars”数组,我可以使用列表中的名称创建更多数组:

for($i = 0;  $i < count($vars); $i++){
 ${$vars[$i]} = "Something";
}

现在,我在 JavaScript 中有一个数组,我想做同样的事情:在循环中使用列表的名称创建变量。这个变量将是数组,我不能对所有变量使用一个公共数组。我能做什么?

我知道在 JavaScript 中可以做“变量”变量:

var obj = {}
obj.foo = 42;

var bar = 'foo';
console.log(obj[bar]);

但我不知道如何在另一个数组的循环中使用它

【问题讨论】:

  • 你不知道吗?好的。你有什么问题?
  • 你为什么不直接使用数组?大多数时候不需要动态名称变量。
  • 新变量也将是数组。
  • @user3570805 那又怎样?你可以在另一个数组中拥有一个数组,即使你可以像 php 一样做,所有这些数组都将根据上下文放置在 windowthis 对象中,所以基本相同..跨度>
  • 好的,再次查看了您的问题,我可能过早地关闭了它,但是,可以肯定的是,我会问:您到底想做什么?

标签: javascript php arrays


【解决方案1】:

您可以在全局上下文中使用this 来设置全局变量。

$vars = ['Date','Name','Number'];
for(var $i = 0;  $i < $vars.length; $i++){
  this[$vars[$i]] = "Something";
}

【讨论】:

  • 这是 PHP。我要的是 JavaScript。
  • 啊哈,不是,是纯Javascript
  • 你真的没看到var.lengththis吗?
  • 我没看清楚。对不起 :) 谢谢你
【解决方案2】:

好的,我终于找到了解决办法

variables = ["Name1", "Name2", "Name3"];

for (var i = 0; i < variables.length; i++){
  window[variables[i]] = new Object();
  window[variables[i]] = [1, 2, 3];   
}

document.write(Name1) // It shows 1 2 3;

【讨论】:

  • 有时你没有window :)
  • 什么时候没有窗户?
  • @putvande,例如当我没有浏览器时
猜你喜欢
  • 2021-08-11
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多