Заполнить и вывести матрицу с помощью js
Требуется создать двумерный массив 10х5 и заполнить его числами от 100 до 200, после вывести результат в виде таблицы (строки-столбцы) и отсортировать. Испытываю трудности с JS: не получается заполнить массив, а результат выводится в одну строку.
var arr = [ [], [], [], [], [] ]; for (var i = 0; i < 15; i++) < arr[i] = Math.floor(Math.random() * (200 - 100 + 1)) + 100; >console.log(arr[1]);
Отслеживать
1,648 10 10 серебряных знаков 16 16 бронзовых знаков
задан 26 сен 2016 в 12:23
The Marafonskiy The Marafonskiy
85 1 1 серебряный знак 6 6 бронзовых знаков
SO существует не для решения домашних заданий.
26 сен 2016 в 12:35
я хочу узнать в чем ошибка моя
26 сен 2016 в 12:42
В том, что вы заполняете одномерный массив. Для заполнения двумерного массива явно должно быть два цикла.
26 сен 2016 в 12:43
@AlexeyTen, не обязательно
28 окт 2016 в 10:07
@Grundy обязательно. Их, конечно можно скрыть за map/forEach и т.п. но под капотом всё-тавно будет два цикла.
28 окт 2016 в 10:09
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Проверьте то ли это, что вам нужно — а то по вашему описанию очень сложно понять детали задачи.
var cmpr = function(a, b) < if (+a >+b) else > var arr=[]; for(var i=0;i <5;i++)< arr[i]=[]; for(var j=0;j<10;j++)< arr[i][j] = Math.floor(Math.random()*(200-100+1))+100 >arr[i].sort(cmpr) > console.log(arr);
Отслеживать
ответ дан 26 сен 2016 в 12:43
20.4k 4 4 золотых знака 25 25 серебряных знаков 52 52 бронзовых знака
хотел бы узнать, например есть у нас многомерный массив как сделать так чтобы массивы внутри него выводились в столбик, как матрица например
26 сен 2016 в 12:50
@TheMarafonskiy куда «выводились»?
– user176262
26 сен 2016 в 13:20
@TheMarafonskiy, console.log(JSON.stringify(arr, null, ‘\t’));
26 сен 2016 в 16:21
@yarkov_aleksei, console.table
26 сен 2016 в 18:47
@TheMarafonskiy, Non-standard This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
27 сен 2016 в 16:04
Можно попробовать с помощью рекурсий —
// m - matrix // x - horizontal size // y - vertical size const fillMatrix = ( matrix, horizontalSize, verticalSize, provider ) => < const horizontal = ( m, x, y ) =>m.push( provider( m.length, y ) ) < x ? horizontal( m, x, y ) : m; const vertical = ( m, x, y ) =>m.push( horizontal( [], x, m.length ) ) < y ? vertical( m, x, y ) : m; return vertical( matrix, horizontalSize, verticalSize ); >let matrix = fillMatrix( [], 3, 3, (x, y) => (< x, y >) ) let string = matrix.reduce( ( vertical, item ) => < vertical += item.reduce( ( horizontal, < x, y >) => < horizontal += `[x: $< x >, y: $< y >]`; return horizontal; >, ""); vertical += "\n"; return vertical; > , "" ); console.log( string );
Вывод двумерных массивов
Обработка двумерных массивов
Кто нибудь знает как "Просуммировать элементы столбцов матрицы. Результат получить в одномерном.
Вывод массивов змейкой
Нужна помощь с выводом масивов змейкой. Я сделал что вывод осуществляется : 1234 8765 9123.
Сравнение двух массивов и вывод на экран их одинаковых элементов
Здравствуйте. Только начал изучать JavaScript. Хочу разобраться с вот такой задачкой: Заполнить два.
Вывод ассоциативных массивов JavaScript
Каким образом можно вывести ключ и значение ассоциативного массива через JavaScript? Пробую так.
286 / 173 / 86
Регистрация: 19.04.2014
Сообщений: 1,095

Сообщение было отмечено 212 как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13
var testArray = []; for(var i = 0; i 5; i++) { testArray[i] = []; for(var j = 0; j 5; j++) { testArray[i][j] = j; } console.log(testArray[i]); }
Многомерные массивы в JS
Многомерный массив — это массив, в котором содержится другой массив или другие массивы.
// пример многомерного массива const data = [[1, 2, 3], [1, 3, 4], [4, 5, 6]];
Создание многомерного массива
Пример 1
let studentsData = [['Андрей', 24], ['Настя', 23], ['Даня', 24]];
Пример 2
// одномерные массивы let student1 = ['Андрей', 24]; let student2 = ['Настя', 23]; let student3 = ['Даня', 24]; // многомерный массив let studentsData = [student1, student2, student3];
Оба примера создают одинаковые мнгомерные массивы.
Доступ к элементам многомерного массива
Получить элемент многомерного массива можно обратившись к нему по индексу или индексам.
let x = [ ['Андрей', 24], ['Настя', 23], ['Даня', 24] ]; // получаем первый элемент — это массив console.log(x[0]); // Вывод: ["Андрей", 24] // получаем первый элемент первого «внутреннего» массива console.log(x[0][0]); // Вывод: Андрей // получаем второй элемент третьего «внутреннего» массива console.log(x[2][1]); // Вывод: 24
Многомерный массив x из нашего примера можно представить как таблицу с 3 строками и 2 столбцами.
Добавление элементов в многомерный массив
Добавить элемент в многомерный массив можно с помощью метода push() или с помощью квадратных скобок [] и доступа по индексу. Еще вариант — использовать метод splice() , но он используется реже.
С помощью push()
Давайте добавим элемент во «внешний» массив с помощью метода push() .
let studentsData = [['Андрей', 24], ['Настя', 23],]; studentsData.push(['Даня', 24]); console.log(studentsData); // Вывод: [["Андрей", 24], ["Настя", 23], ["Даня", 24]
Теперь добавим элемент во «внутренний» массив.
let studentsData = [['Андрей, 24], ['Настя', 23],]; studentsData[1].push('привет'); console.log(studentsData); // Вывод: [['Андрей, 24], ['Настя', 23, "привет"]]
С помощью квадратных скобок
// using index notation let studentsData = [['Андрей', 24], ['Настя', 23],]; studentsData[1][2] = 'привет'; console.log(studentsData); // Вывод: [["Андрей", 24], ["Настя", 23, "привет"]]
С помощью splice()
let studentsData = [['Андрей', 24], ['Настя', 23],]; // добавляем элемент на позицию с индексом 1 studentsData.splice(1, 0, ['Даня', 24]); console.log(studentsData); // Вывод: [["Андрей", 24], ["Даня", 24], ["Настя", 23]]
Удаление элементов из многомерного массива
Удалить элемент в многомерный массив можно с помощью метода pop() или с помощью метода splice() .
С помощью pop()
Давайте удалим элемент из «внешнего» массива с помощью метода pop() .
let studentsData = [['Андрей', 24], ['Настя', 23],]; studentsData.pop(); console.log(studentsData); // Вывод: [["Андрей", 24]]
Теперь удалим элемент из внутреннего массива с помощью pop() .
let studentsData = [['Андрей', 24], ['Настя', 23]]; studentsData[1].pop(); console.log(studentsData); // Вывод: [["Андрей", 24], ["Настя"]]
Примечание. Минус метода pop() — он умеет удалять только последний элемент.
С помощью splice()
А вот метод splice() позволяет удалять элемент по определенному индексу.
let studentsData = [['Андрей', 24], ['Настя', 23],]; // удаляем элемент «внешнего» массива с индексом 1 — «внутренний» массив studentsData.splice(1,1); console.log(studentsData); // Вывод: [["Андрей", 24]]
Перебор элементов многомерного массива
С помощью forEach()
Перебрать элементы многомерного массива можно с помощью метода forEach() .
let studentsData = [['Андрей', 24], ['Настя', 23],]; // перебираем элементы массива studentsData studentsData.forEach((student) => < student.forEach((data) =>< console.log(data); >); >);
Вывод
Андрей 24 Даня 23
Первый метод forEach() используется для перебора элементов «внешнего» массива, а второй forEach() — для перебора элементов «внутреннего» массива.
С помощью for. of
Еще вариант для перебора — использовать цикл for. of для прохода по многомерному массиву.
let studentsData = [['Андрей', 24], ['Настя', 23],]; for (let i of studentsData) < for (let j of i) < console.log(j); >>
С помощью цикла for
Перебрать элемента многомерного массива можно и классическим способом — с помощью цикла for .
let studentsData = [['Андрей', 24], ['Настя', 23],]; // проходим по элементам «внешнего» массива for(let i = 0; i < studentsData.length; i++)< // вычисляем длину «внутреннег» массива let innerArrayLength = studentsData[i].length; // проходим по элементам «внутреннего» массива for(let j = 0; j < innerArrayLength; j++) < console.log(studentsData[i][j]); >>
СodeСhick.io — простой и эффективный способ изучения программирования.
2023 © ООО «Алгоритмы и практика»
Двумерные массивы. Массивы в массивах. Трехмерные массивы
В языке JavaScript разрешается создавать двумерный массив двух видов:
- с одинаковым количеством элементов в каждой строке (рисунок 1-a);
- с произвольным количеством элементов в каждой строке (рисунок 1-b).
При этом каждый элемент также может быть массивом или другим сложным объектом.

Рисунок 1. Виды двумерных массивов. Количество элементов в каждой строке одинаково (a) и произвольно (b)
2. Литеральное определение двумерного массива [ ] . Общая форма
При литеральном определении двумерного массива элементы массива задаются во внешних квадратных скобках [] , которые, в свою очередь, содержат наборы элементов, взятых во внутренних квадратных скобках.
В наиболее общем виде создание двумерного массива размером M×N (все строки имеют одинаковый размер) выглядит следующим образом
var ArrayName = [ [ item11, item12, . item1N], [ item21, item22, . item2N], . [ itemM1, itemM2, . itemMN] ]
- ArrayName – имя объявляемого массива;
- M – количество строк в массиве;
- N – количество столбцов в массиве;
- item11 , item12 , …, itemMN – элементы массива. Эти элементы могут быть объектами любого типа (число, строка и т.п.) и даже другими массивами.
Если количество элементов в каждой строке разное, то общая форма объявления такого массива буквальным способом может быть, например, такой
var ArrayName = [ [ item11, item12, . item1_N1 ], [ item21, item22, . item2_N2 ], . [ itemM1, itemM2, . itemM_NM ] ]
- N1 , N2 , NM – соответственно количество элементов в строке 1 (позиция 0), строке 2 и строке M . То есть количество элементов в каждой строке отличается.
3. Пример создания двумерной таблицы с одинаковым количеством элементов в строке буквальным способом
В примере создается двумерная таблица, изображенная на рисунке 2.

Рисунок 2. Двумерная таблица
Матрица создается двумя разными способами
// Двумерные массивы // Способ 1. // 1. Создать двумерную матрицу целых чисел размером 3*4 var M = [] M[0] = [ 2, 8, 4, 1 ] // Первая строка матрицы M[1] = [ 4, 2, 0, 9 ] // вторая строка матрицы M[2] = [ 1, 7, 5, 4 ] // третья строка матрицы // 2. Вывести матрицу в цикле document.write("M:
") for (var i=0; ifor (var j=0; j" ") document.write("
") > // Способ 2. var MM = [ [ 2, 8, 4, 1 ], [ 4, 2, 0, 9 ], [ 1, 7, 5, 4 ] ] // 2. Вывести матрицу в цикле document.write("MM:
") for (var i=0; ifor (var j=0; j" ") document.write("
") >
M: 2 8 4 1 4 2 0 9 1 7 5 4 MM: 2 8 4 1 4 2 0 9 1 7 5 4
4. Определение двумерного массива с помощью оператора new
С помощью этого способа двумерный массив определяется с использованием ключевого слова new , имени класса Array и указанием в скобках элементов массива.
Ниже приведена общая форма создания двумерного массива, в котором количество элементов во всех строках одинаково
var ArrayName = new Array( new Array(item11, item12, . item1N), new Array(item21, item22, . item2N), . new Array(itemM1, itemM2, . itemMN) )
- ArrayName – имя создаваемого массива;
- M – количество строк в массиве;
- N – количество элементов в строке (количество столбцов);
- item11 , item12 , itemMN – элементы массива. Это могут быть строки, числа, объекты и другие массивы (подмассивы).
Если массив содержит разное количество элементов в каждой строке, то общая форма создания такого массива следующая
var ArrayName = new Array( new Array(item11, item12, . item1_N1), new Array(item21, item22, . item2_N2), . new Array(itemM1, itemM2, . itemM_NM) )
- N1 , N2 , NM – соответственно количество элементов в строке 1 (позиция 0), строке 2 и строке M. То есть количество элементов в каждой строке разное.
При объявлении двумерных массивов можно совмещать данный способ создания массива с литеральным способом (п. 2).
5. Пример создания массива чисел с разной длиной строк оператором new
В примере с помощью оператора new создается массив чисел, который отображен на рисунке 3.

Рисунок 3. Массив чисел с разной длиной строк
Текст примера следующий
// Двумерные и многомерные массивы // Создать массив с помощью оператора new. // Длина каждой строки в массиве отличается. // 1. Объявление массива и заполнение значениями var M = new Array ( new Array( 5, 9, 3), new Array( 8, 1.23, 2.99, 6.54, 5.4), new Array( 7.2, 2, -40.6, -1.03) ) // 2. Вывести массив M поэлементно document.write("M:
") for (var i=0; ifor (var j=0; j" "); document.write("
") > // 3. Вывести массив M строками document.write("-----------------------
") document.write("M:
") for (var i=0; i"
") document.write("-----------------------
") // 4. Вывести отдельный элемент массива в массиве document.write(M[1][2]+"
") // 2.99
M: 5 9 3 8 1.23 2.99 6.54 5.4 7.2 2 -40.6 -1.03 ----------------------- M: 5,9,3 8,1.23,2.99,6.54,5.4 7.2,2,-40.6,-1.03 ----------------------- 2.99
6. Особенности использования массивов в массивах
Как было сказано выше (п. 1), элементом массива может быть другой массив любого измерения. На рисунке 4 изображены элементы массива, также являющиеся массивами. Для доступа к элементу 7 подмассива [2, 7, 3] необходимо обратиться к M[0][0][1].

Рисунок 4. Массив в массиве
7. Пример создания массива в массиве литеральным способом
// Двумерные и многомерные массивы // Создать массив в массиве литеральным способом var M = [] var m1 = [2, 7, 3] M[0] = [ 5, m1, 9 ] // первая строка матрицы M[1] = [ 8, 1.23, [] , "abc" ] // вторая строка матрицы M[2] = [ [7.2, 1 ], [ 'a', 2 ] ] // третья строка матрицы // 2. Вывести массив в цикле document.write("M:
") for (var i=0; ifor (var j=0; j" ") document.write("
") > // Вывести отдельный элемент массива в массиве document.write(M[0][1][0]+"
") // 7 document.write(M[2][0][1]+"
") // 1 document.write(M[2][1][0]+"
") // 'a'
M: 5 2,7,3 9 8 1.23 abc 7.2,1 a,2 2 1 a
8. Пример создания массива в массиве сочетанием оператора new и литеральным способом
При создании многомерного массива можно совмещать создание массива оператором new и литеральным способом.
// Двумерные и многомерные массивы // Создать массив в массиве с помощью оператора new. // Сформировать массив, в котором названию времени года соответствует // определенный перечень месяцев // M: // [ "December", "January", "February"] // [ "March", "April", "May"] // [ "June", "July", "August" ] // [ "September", "October", "November"] // 1. Создать массив месяцев, соответствующих временам года var M = new Array( ["December", "January", "February"], ["March", "April", "May"], ["June", "July", "August"], ["September", "October", "November"] ) // 2. Вывести массив M for (var i=0; i"
"); // 3. Вывести отдельный элемент массива в массиве document.write(M[1][2]+"
") // May document.write(M[3][0]+"
") // September
December,January,February March,April,May June,July,August September,October,November May September
9. Создание двумерного массива заданного размера. Размер задается с клавиатуры. Свойство length
Условие задачи. Создать двумерный массив размера m × n , где m – количество строк, n – количество столбцов. Значения m , n вводятся с клавиатуры. Элементы массива заполнить значениями 1.
Решение.
После ввода m , свойство length массива устанавливается в соответствующие значения.
// Двумерные и многомерные массивы // Задача. Создать массив заданного размера m*n, // где m, n вводятся с клавиатуры. // Заполнить массив значениями 1. // 1. Ввести m, n var m = prompt("m color: #0000ff;">var n = prompt("n color: #008000;">// 2. Объявление массива var A = new Array() // 3. Указать количество строк A.length = m; // 4. Указать количество столбцов for (var i=0; i // Создать подмассив в массиве A[i] = new Array() // Установить длину массива A[i].length = n > // 5. Заполнить массив A значениями 1 for (var i=0; ifor (var j=0; j// 6. Вывести массив A на экран document.write("A:
") for (var i=0; ifor (var j=0; j" ") document.write("
") >
A: 1 1 1 1 1 1 1 1 1 1 1 1
10. Создание трехмерного массива. Свойство length
При создании трехмерного массива размерность каждого измерения устанавливается с помощью свойства length как показано ниже
// Создать одномерный массив размерностью m A = new Array() A.length = m // Добавить вторую размерность n, // получается двумерный массив размером m*n A[0] = new Array(); A[0].length = n A[1] = new Array(); A[1].length = n . A[m-1] = new Array(); A[m-1].length = n // Добавить третью размерность [k] A[0][0] = new Array(); A[0][0].length = k A[0][1] = new Array(); A[0][1].length = k . A[0][n-1] = new Array(); A[0][n-1].length = k A[1][0] = new Array(); A[1][0].length = k . A[1][n-1] = new Array(); A[1][n-1].length = k . A[m-1][0] = new Array(); A[m-1][0].length = k . A[m-1][n-1] = new Array(); A[m-1][n-1].length = k
В приведенном выше фрагменте создается трехмерный массив с именем A размером m × n × k . Конечно, процесс построения массива целесообразнее построить в цикле (смотрите следующий пример).
После этого элементу трехмерного массива можно присваивать значение по образцу
A[x][y][z] = value
- A – имя массива;
- x – координата первого измерения массива, x = 0, 1, …, m-1;
- y – координата второго измерения массива, y = 0, 1, …, n-1;
- z – координата третьего измерения массива, z = 0, 1, …, k-1;
- value – некоторое значение.
11. Пример создания трехмерного массива по заданным размерам m×n×k . Элементы массива заполняются случайными целыми числами
Если заранее известен размер создаваемого массива, то в этом случае используется свойство length. Изменение значения этого свойства (в левой части оператора) позволяет выделить память для заданного количества элементов в одном измерении массива.
В примере ниже демонстрируется создание трехмерного массива размером m × n × k , где m , n , k вводятся с клавиатуры. Элементы массива заполняются случайными числами в диапазоне [5, 10].
Для получения случайного числа используется функция Math.random() .
// Двумерные и многомерные массивы // Задача. Создать массив заданного размера m*n, // где m, n вводятся с клавиатуры. // Заполнить массив значениями 1. // 1. Ввести m, n, k var m = prompt("m color: #0000ff;">var n = prompt("n color: #0000ff;">var k = prompt("k color: #008000;">// 2. Объявление массива, создать пустой массив var A = new Array() // 3. Задать количество элементов по оси X A.length = m; // 4. Задать количество элементов по оси Y for (var i=0; i// Создать подмассив в массиве, // выделить память для другого измерения A[i] = new Array() // Установить длину массива A[i].length = n > // 5. Задать количество элементов по оси Z for (var i=0; ifor (var j=0; j // Выделить память для третьего измерения A[i][j] = new Array() // Установить длину третьего измерения массива A[i][j].length = k > // 6. Заполнить массив случайными значениями for (var i=0; ifor (var j=0; jfor (var t=0; t// 7. Вывести массив A поэлементно document.write("A:
") for (var i=0; ifor (var j=0; jfor (var t=0; t"A["+i+"]["+j+"]["+t+"] color: #800000;">"
")
m = 2 n = 3 k = 4
программа вывела следующий результат
A: A[0][0][0] = 9 A[0][0][1] = 5 A[0][0][2] = 5 A[0][0][3] = 10 A[0][1][0] = 9 A[0][1][1] = 7 A[0][1][2] = 10 A[0][1][3] = 8 A[0][2][0] = 5 A[0][2][1] = 6 A[0][2][2] = 10 A[0][2][3] = 6 A[1][0][0] = 6 A[1][0][1] = 6 A[1][0][2] = 7 A[1][0][3] = 5 A[1][1][0] = 6 A[1][1][1] = 6 A[1][1][2] = 10 A[1][1][3] = 6 A[1][2][0] = 9 A[1][2][1] = 7 A[1][2][2] = 5 A[1][2][3] = 6
Related topics
- Понятие массива. Виды массивов. Создание массивов. Свойство length . Формирование массива
- Решение задач на одномерные массивы. Примеры
- Решение задач на двумерные массивы
