2014-12-22 8 views
-1

Примечание: Этот вопрос есть о TypeScript (а не JavaScript).Тип: Поместить массив в массив

Я хочу, чтобы поместить массив в массив в заданном положении:

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

Try следующего фрагмента кода

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

Вы правы, он работает. Меня смутил визуальный отладчик студии (см. Мой ответ). – 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...

Смежные вопросы