2011-11-04 76 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的結果。