2014-12-22 46 views
-1

注意:此問題是關於TypeScript(不是JavaScript)。TypeScript:將數組放入數組

我想提出一個數組的數組中的指定位置:現在

var a = []; 
a[0] = [1,2]; 

a[1,2]但應該是[[1,2]]

我該如何實現我想要放入數組中的數組[1,2]未平展,而是直接放入數組中?因此最後我需要將數組放入數組的過程。

+0

是絕對打字稿和JavaScript這裏沒有什麼區別。這不可能,或者TypeScript不再是JavaScript的嚴格超集。 –

+0

正如你所說的,你的代碼給出了一個數組數組。另外值得一提的是,直接添加到未經初始化的數組中的位置'n'對於性能來說是一個糟糕的主意 – basarat

+1

這在TypeScript中的「原樣」 - 在TypeScript操場上的演示:http://bit.ly/ 1znxNqh – Fenton

回答

0

好了,你是對的。我的問題中的代碼按預期工作。

我剛由Visual Studio調試器可視困惑:

enter image description here

...顯示[[1,2]][1,2](這是真的不是很好,不是嗎?)。

而且還由Internet Explorer 11的控制檯困惑:

enter image description here

...顯示[[1,2]]1,2

0

嘗試下面的代碼片段

a = new Array(5) 

a[0] = new Array(2) 

a[0][0] = Array(1,2); 

a[0][1] = Array(3,4); 
0

你在哪裏看到的[1,2]我只是嘗試這樣做,它顯示了[1,2]

此外,您可以嘗試不同的方法是使用推:

a.push([1,2]);

push()和你的代碼給了我相同的結果,兩者都是你正在尋找的。你在瀏覽器中看到這個嗎?或節點?

+0

你在TypeScript中試過嗎?我需要TypeScript中的功能而不是JavaScript。 – Dennis

+0

我剛剛在這裏嘗試了同樣的事情,它給出了正確的結果:http://www.typescriptlang.org/Playground#src=%0Avar%20a%20%3D%20%5B%5D%3B%0Aa.push (%5B1%2C2%5D)%3B%0Aconsole.log(a)%3B – Born2Code

+0

你說的對。我被visual studio調試器搞糊塗了(看我的答案)。 – Dennis

0

在Javascript中: 我想你在控制檯說,我得到預期的結果:

a = [] 

a[0] = [1,2] 

a; output=> 
[Array[2]] 

a.length: output=> 
1 

a[0].length: output=> 
2 
+0

我知道它可以在JavaScript中工作,這就是爲什麼我驚訝它在TypeScript中不起作用。我需要TypeScript中的功能而不是JavaScript。 – Dennis

0

你的代碼是罰款

var a = []; 
 
a[0] = [1, 2]; 
 
console.log(a.join(',')); //prints, `1,2` 
 
console.log(JSON.stringify(a)); //prints, `[[1,2]]`
Open console...