我得到一个这样的数组:
var array = [ [ [1,1],[1,2],[1,3] ] , [ [2,2],[3,3],[4,4] ] ] ;
我想将数组分成两个正常数组,并将内容放在独立递增的变量(data1,data2,data3,data4)中。
但var数组在不同时间的大小不同(有时3个数组,有时4个,......)现在我的问题是如何创建递增的独立变量data1,data2,...
我想到了这个
counter = 0;
for (var content in array)
{
data + counter.toString() = content;
content++;
}
但这不起作用(按照我没想到的方式:D)
我们可以一起找到解决方案吗?
祝你好运, 苏珊!!
答案 0 :(得分:1)
创建变量(即本地执行上下文的属性)的唯一方法是在variable declaration中使用var
声明它们,这不允许使用表达式。
全局变量属于全局对象的属性,这是一个javascript的怪癖,但这是唯一可以使用表达式创建实际变量的执行上下文,例如。
var globalObject = this;
globalObject.foo = 'foo';
globalObject[foo + 'bar'] = 'foobar';
在全球范围内,在许多方面(但不完全相同),相当于:
var foo = 'foo';
var foobar = 'foobar';
但是,您无法在函数上下文中获取对本地执行或变量对象的引用,因此您无法以这种方式创建局部变量。
最好将“变量”创建为对象的属性。
答案 1 :(得分:1)
var array = [ [ [1,1],[1,2],[1,3] ] , [ [2,2],[3,3],[4,4] ] ] ;
for (var i=1;i<=array.length;i++)
window["data" + i] = array[i-1].slice();
小提琴:http://jsfiddle.net/xC2kT/
我建议您对数组使用for
,对Javascript对象使用for..in
答案 2 :(得分:0)
请改为尝试:
counter = 0;
for (var content in array)
{
window["data" + counter.toString()] = content;
counter++;
}