注意:此問題是關於TypeScript(不是JavaScript)。TypeScript:將數組放入數組
我想提出一個數組的數組中的指定位置:現在
var a = [];
a[0] = [1,2];
a
是[1,2]
但應該是[[1,2]]
。
我該如何實現我想要放入數組中的數組[1,2]
未平展,而是直接放入數組中?因此最後我需要將數組放入數組的過程。
注意:此問題是關於TypeScript(不是JavaScript)。TypeScript:將數組放入數組
我想提出一個數組的數組中的指定位置:現在
var a = [];
a[0] = [1,2];
a
是[1,2]
但應該是[[1,2]]
。
我該如何實現我想要放入數組中的數組[1,2]
未平展,而是直接放入數組中?因此最後我需要將數組放入數組的過程。
好了,你是對的。我的問題中的代碼按預期工作。
我剛由Visual Studio調試器可視困惑:
...顯示[[1,2]]
爲[1,2]
(這是真的不是很好,不是嗎?)。
而且還由Internet Explorer 11的控制檯困惑:
...顯示[[1,2]]
爲1,2
。
嘗試下面的代碼片段
a = new Array(5)
a[0] = new Array(2)
a[0][0] = Array(1,2);
a[0][1] = Array(3,4);
你在哪裏看到的[1,2]我只是嘗試這樣做,它顯示了[1,2]
此外,您可以嘗試不同的方法是使用推:
a.push([1,2]);
push()和你的代碼給了我相同的結果,兩者都是你正在尋找的。你在瀏覽器中看到這個嗎?或節點?
在Javascript中: 我想你在控制檯說,我得到預期的結果:
a = []
a[0] = [1,2]
a; output=>
[Array[2]]
a.length: output=>
1
a[0].length: output=>
2
我知道它可以在JavaScript中工作,這就是爲什麼我驚訝它在TypeScript中不起作用。我需要TypeScript中的功能而不是JavaScript。 – Dennis
你的代碼是罰款
var a = [];
a[0] = [1, 2];
console.log(a.join(',')); //prints, `1,2`
console.log(JSON.stringify(a)); //prints, `[[1,2]]`
Open console...
是絕對打字稿和JavaScript這裏沒有什麼區別。這不可能,或者TypeScript不再是JavaScript的嚴格超集。 –
正如你所說的,你的代碼給出了一個數組數組。另外值得一提的是,直接添加到未經初始化的數組中的位置'n'對於性能來說是一個糟糕的主意 – basarat
這在TypeScript中的「原樣」 - 在TypeScript操場上的演示:http://bit.ly/ 1znxNqh – Fenton