Как создать многомерный массив js
Перейти к содержимому

Как создать многомерный массив js

  • автор:

Как создать n-мерный (многомерный) массив на JavaScript?

как в JavaScript заносить массив в многомерный массив, без обертывания в кавычки? Т.е. есть массив — в него нужно засунуть еще 3 массива с 3мя елементами в каждом. В конечном счете мне нужно получить многомерный массив такого вида:

var big_array= [[2, 5, 7], [3, 1, 4], [6, 8, 9]]; 

Я пытался добавлять массивы через push и якобы эмулировать массивы.

big_array.push("["+var1+","+var2+","+var3+"]"); //это пример добавления первого массива с данными (2,5,7) Но результат получается вот такой, с кавычками: ["[2,5,7]"] //это big_array 

Когда должен быть:
Как это можно сделать?
Отслеживать
323 2 2 серебряных знака 26 26 бронзовых знаков
задан 8 апр 2012 в 12:14
Denis Masster Denis Masster
1,157 5 5 золотых знаков 23 23 серебряных знака 54 54 бронзовых знака
big_array.push(var1, var2, var3);
8 апр 2012 в 12:27
@alexlz — вы добавляете 3 элемента, ТСу нужно добавить массив с тремя элементами
8 апр 2012 в 12:29

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

big_array.push("["+var1+","+var2+","+var3+"]"); // LOL big_array.push([var1, var2 ,var3]);// не. 

Вы запихиваете строку и удивляетесь тому, что в массив добавляется именно строка? О_О

Отслеживать
ответ дан 8 апр 2012 в 12:17
user3545 user3545

А почему я получаю немного не то, что хочется? > big_array [ [ [ 2, 5, 7 ], [ 3, 1, 4 ], [ 6, 8, 9 ] ] ]

8 апр 2012 в 12:31
а.. строка.. точно) спасибо )
8 апр 2012 в 12:34

Значит вы что-то делаете не так, тут без вариантов. К тому-же я понятия не имею что именно вы хотите получить. PS: рискну предположить что вы тупо вызываете push не для того массива Если вы так и не разобрались — предоставьте код

8 апр 2012 в 12:34
Да нет, просто я var’ам присвоил одномерные массивы. Что и видно по результату.
8 апр 2012 в 12:41

ПРИМЕР СОЗДАНИЯ МАССИВА С ИСПОЛЬЗОВАНИЕМ КОНСТРУКТОРА ОБЪЕКТА Array:

var arr = new Array(3);//Создание массива на 3 элемента arr[0] = new Array(3); //вставл. в первый элемент массив на 3 элемента arr[1] = new Array(3); //вставл. в второй элемент массив на 3 элемента arr[2] = new Array(3); //вставл. в третий элемент массив на 3 элемента //. 

ПРИМЕР СОЗДАНИЯ МАССИВА С ИСПОЛЬЗОВАНИЕМ КВАДРАТНЫХ СКОБОК:

var arr = []; //Создание пустого массива arr[0] = []; //вставл. в первый элемент массив arr[1] = []; //вставл. в второй элемент массив arr[2] = []; //вставл. в третий элемент массив //. 

ПРИМЕЧАНИЕ: В JavaScript объекты Array являются динамическим, т.е. количество элементов может быть добавлено или сокращенно в любой момент времени выполнения программы. Исходя из этого вы можете добавить нужное количество элементов нужного типа в любой уровень многомерного массива, как в первом так и втором способе.

ПРИМЕР СОЗДАНИЯ МНОГОМЕРНОГО МАССИВА (10×10) С ИСПОЛЬЗОВАНИЕМ ЦИКЛА:

 var tаblе = new Array (10); // 10 строк таблицы for (var i=0; i < tаblе.length; i++) < tаblе[i] = new Array(10); // 10 столбцов >

JavaScript: Многомерные массивы

В JavaScript массивы могут содержать значения любых типов, в том числе и другие массивы. Эту особенность можно использовать для создания так называемых многомерных массивов. Многомерный массив – это массив, значениями которого являются другие массивы:

var arr = [ [1,2,3], [4,5,6], [7,8,9] ];

Для доступа к элементам, которые в качестве значения содержат массив, используются всё те же квадратные скобки. В первых скобках указывается индекс элемента для доступа к внутреннему массиву, так как в качестве значения элемента содержится ещё один массив, то во вторых скобках указывается индекс элемента внутреннего массива:

var arr = [ [1,2,3], [4,5,6], [7,8,9] ]; alert(arr[1][2]); // 6

Для перебора многомерного массива придётся использовать вложенный цикл. Первый цикл будет использоваться для доступа к элементам внешнего массива, а второй – для доступа к элементам вложенных массивов:

var arr = [ [1,2,3], [4,5,6], [7,8,9] ]; for(let j = 0; j < arr.length; j++) < for(let n = 0; n < arr.length; n++) < if (n === arr.length - 1) document.write(arr[j][n]); else document.write(arr[j][n] + ", "); >document.write("
"); >

С этой темой смотрят:

  • Массивы: создание, работа с элементами
  • Свойство length
  • Циклы
  • if else
  • alert, document.write, prompt

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru | razumnikum.ru

Многомерные массивы в 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 © ООО «Алгоритмы и практика»

Как создать многомерный массив js

Чтобы получить отдельный элемент массива, также используется индекс:

const tomInfo = people[0];

Только теперь переменная tomInfo будет представлять массив. Чтобы получить элемент внутри вложенного массива, нам надо использовать его вторую размерность:

console.log("Имя: ", people[0][0]); // Tom console.log("Возраст: ", people[0][1]); // 25

То есть если визуально двумерный массив мы можем представить в виде таблицы, то элемент people[0][1] будет ссылаться на ячейку таблицы, которая находится на пересечении первой строки и второго столбца (первая размерность — 0 — строка, вторая размерность — 1 — столбец).

Также мы можем выполнить присвоение:

const people = [ ["Tom", 25, false], ["Bill", 38, true], ["Alice", 21, false] ]; people[0][1] = 56; // присваиваем отдельное значение console.log(people[0][1]); // 56 people[1] = ["Bob", 29, false]; // присваиваем массив console.log(people[1][0]); // Bob

При создании многомерных массивов мы не ограничены только двумерными, но также можем использовать массивы больших размерностей:

const numbers = []; numbers[0] = []; // теперь numbers - двумерный массив numbers[0][0]=[]; // теперь numbers - трехмерный массив numbers[0][0][0] = 5; // первый элемент трехмерного массива равен 5 console.log(numbers[0][0][0]);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *