2011-11-04 50 views
4
var a = new Array(); 
var b = new Array(); 
var c = [a,b]; 

var str = 'hello,world,nice,day'; 
for(var i = 0; i < c.length; i++){ 
    c[i] = str.split(','); 
} 

执行后的我想有:的JavaScript - 分配 - 阵列阵列

c = [a, b]; 
a = ['hello', 'world', 'nice', 'day']; 
b = ['hello', 'world', 'nice', 'day']; 

但我实在:

c = [['hello', 'world', 'nice', 'day'], ['hello', 'world', 'nice', 'day']]; 
a = []; 
b = []; 

可以解决呢?

更新: 雷诺斯的决定是非常好的。谢谢。

+0

我很惊讶你得到a = null,b = null,应该不是a和b是空数组吗? – themel

+0

当我写了一个= null,b = null这意味着他们是空的数组。对不起,我错了。 – FSou1

回答

5
for(var i = 0; i < c.length; i++){ 
    c[i].push.apply(c[i], str.split(',')); 
} 
+0

这是非常好的。谢谢。 – FSou1

0

因为你写c[i] = str.split(','); - 你应该写c[i] = str.split(',')[i];
而实际上 - 为什么要在它与for

编辑 - 对不起,以为任务是C [0],C [1] ...

+0

str.split(',')[i]。你确定答案吗? – FSou1

+0

不这样做,他要不惜一切 – Raynos

+0

什么,我敢肯定,有关语法 - 但我已经编辑我的答案,没注意到的第一部分'C = [A,B]' –

1

split该函数创建一个新的数组,即存储在c。您必须遍历由split返回的数组,并在该值上执行c[i].push()

或者只是将ab直接设置为split的结果。