Матрица на Javascript
Как работать с двумерной матрицей на Javascript? Перепробовал уже всё, что можно...
На самом деле проблема несложна. Нужно описать матрицу как массив массивов в виде
var a=new Array ( new Array ('1-1','1-2','1-3','1-4'), new Array ('2-1','2-2','2-3','2-4'), new Array ('3-1','3-2','3-3','3-4'), new Array ('4-1','4-2','4-3','4-4'), new Array ('5-1','5-2','5-3','5-4') );
- здесь существенно то, что каждая строка массива a
тоже представляет собой массив, причём явно созданный конструктором new
. После этого мы можем спокойно обращаться к отдельным элементам матрицы в стиле языка Си, то есть, в виде a[i][j]
, а количество строк матрицы и количество элементов в любой строке можно узнать через стандартное свойство length
.
Разумеется, интерпретатору Javascript не важно, из строк или чисел Вы строите матрицу, хотя всё равно не нужно забывать о строковом или числовом контексте.
Ниже приводится законченный пример, строящий по матрице её "изображение" в виде таблицы HTML. Пример следует сохранить как файл с расширением .html
.
P.S. В новых версиях JavaScript можно и просто
<pre id="matr2"></pre> <script> let arr = [ [1,2,3,4], [5,6,7,8], [9,10,11] ]; let s = ''; for (let i=0; i<arr.length; i++) { let len = arr[i].length; for (let j=0; j<len; j++) { s += String(arr[i][j]).padStart(5,' ') + (j<len-1 ? ' ' : ''); } s += "\n"; } document.getElementById('matr2').innerHTML = s; </script>
В элементе matr2
будет выведено:
1 2 3 4 5 6 7 8 9 10 11
25.06.2010, 12:34 [17081 просмотр]