Если вы используете Vim, нажмите escape, а затем введите
gg = G
. Это автоматически отбрасывает все и очищает все пробелы, которые вы вложили.
var items = [[1, 2], [3, 4], [5, 6]]; console.log (элементы [0] [0]); // 1 console.log (items [0] [1]); // 2 console.log (items [1] [0]); // 3 console.log (items [1] [1]); // 4 console.log (items);
Создает n размерный матричный массив для Сценария Java, заполняющегося начальным значением по умолчанию значения 0.
function arr (arg, def = 0){
if (arg.length > 2){
return Array(arg[0]).fill().map(()=>arr(arg.slice(1)));
} else {
return Array(arg[0]).fill().map(()=>Array(arg[1]).fill(def));
}
}
// Simple Usage of 4 dimensions
var s = arr([3,8,4,6])
// Use null default value with 2 dimensions
var k = arr([5,6] , null)
строка и размеры Столбца массив известный только в время выполнения затем в соответствии с методом могло использоваться для создания динамический 2-й массив .
var num = '123456';
var row = 3; // Known at run time
var col = 2; // Known at run time
var i = 0;
var array2D = [[]];
for(var r = 0; r < row; ++r)
{
array2D[r] = [];
for(var c = 0; c < col; ++c)
{
array2D[r][c] = num[i++];
}
}
console.log(array2D);
// [[ '1', '2' ],
// [ '3', '4' ],
// [ '5', '6' ]]
console.log(array2D[2][1]); // 6
Javascript only has 1-dimensional arrays, but you can build arrays of arrays, as others pointed out.
The following function can be used to construct a 2-d array of fixed dimensions:
function Create2DArray(rows) {
var arr = [];
for (var i=0;i<rows;i++) {
arr[i] = [];
}
return arr;
}
The number of columns is not really important, because it is not required to specify the size of an array before using it.
Then you can just call:
var arr = Create2DArray(100);
arr[50][2] = 5;
arr[70][5] = 7454;
// ...
Причина, по которой некоторые говорят, что это невозможно, заключается в том, что двумерный массив на самом деле является просто массивом массивов. Другие комментарии здесь предоставляют совершенно допустимые методы создания двумерных массивов в JavaScript, но наиболее чистая точка зрения заключается в том, что у вас есть одномерный массив объектов, каждый из этих объектов будет одномерным массивом, состоящим из двух элементов.
Итак, в этом причина противоречивых точек зрения.
Подобно ответу activa, вот функция для создания n-мерного массива:
function createArray(length) {
var arr = new Array(length || 0),
i = length;
if (arguments.length > 1) {
var args = Array.prototype.slice.call(arguments, 1);
while(i--) arr[length-1 - i] = createArray.apply(this, args);
}
return arr;
}
createArray(); // [] or new Array()
createArray(2); // new Array(2)
createArray(3, 2); // [new Array(2),
// new Array(2),
// new Array(2)]
Двумерные массивы создаются так же, как и одномерные массивы. И вы обращаетесь к ним как array [0] [1]
.
var arr = [1, 2, [3, 4], 5];
alert (arr[2][1]); //alerts "4"
Вы просто превращаете каждый элемент в массиве в массив.
var x = new Массив (10); for (var i = 0; i
Вы можете выделить массив строк, где каждая строка представляет собой массив одинаковой длины. Или вы можете выделить одномерный массив с элементами строки * столбцы и определить методы для сопоставления координат строки / столбца с индексами элементов.
Какую бы реализацию вы ни выбрали, если вы заключите ее в объект, вы можете определить методы доступа в прототип, чтобы упростить использование API.