Содержание

Как объявить массив в javascript

Я читал в интернете, и некоторые места говорят, что это невозможно, некоторые говорят, что это, а затем дают пример, а другие опровергают пример и т. д.

как объявить 2-мерный массив в JavaScript? (если это возможно)

Как я могу получить доступ к его членам? ( myArray[0][1] или myArray[0,1] ?)

30 ответов

вы просто делаете каждый элемент в массиве массивом.

подобно ответу activa, вот функция для создания n-мерного массива:

Javascript имеет только одномерные массивы, но вы можете создавать массивы массивов, как указывали другие.

для построения 2-d массива фиксированных размеров можно использовать следующую функцию:

количество столбцов не очень важно, потому что не требуется указывать размер массива перед его использованием.

тогда вы можете просто позвонить:

самый простой способ:

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

Итак, это причина конфликтующих точек зрения.

немногие люди показывают использование push:
Чтобы принести что-то новое, я покажу вам, как инициализировать матрицу с некоторым значением, например: 0 или пустой строкой «».
Напоминая, что если у вас есть массив из 10 элементов, в javascript последний индекс будет 9!

Он будет генерировать массив a длины 10, заполненные массивы. (Push добавляет элемент в массив и возвращает новую длину)

самый здравый ответ, кажется,

Примечание мы не можем напрямую заполните строки, так как fill использует конструктор мелкой копии, поэтому все строки будут делиться то же самое память. вот пример, который демонстрирует, как каждая строка будет ОБЩИЙ (из других ответов):

самый простой способ:

вот чего я достиг:

это заколдовало меня бинишкумар

2 и 4 первого и второго измерений соответственно.

мы используем Array.from , который может принимать array-like param и необязательное сопоставление для каждого из элементов.

другой вариант (но более неэффективных 12% с n = 10,000 )

снижение производительности происходит с тем, что мы должны иметь первые значения измерения, инициализированные для запуска .map . Запомните это Array не будет выделять позиции, пока вы не закажете его через .fill или прямое значение назначение.

последующие

почему это не работает?

в то время как он возвращает, по-видимому, желаемый двумерный массив ( [ [ <4 empty items> ], [ <4 empty items> ] ] ), есть уловка: первые массивы измерений были скопированы по ссылке. Это означает arr[0][0] = ‘foo’ фактически изменил бы две строки вместо одной.

двумерные массивы создаются так же, как одномерные массивы. И вы получаете к ним доступ, как array[0][1] .

Я не уверен, что кто — то ответил на это, но я обнаружил, что это сработало для меня довольно хорошо —

для 2-мерного массива, например.

чтобы создать 2D-массив в javaScript, мы можем сначала создать массив, а затем добавить массивы в качестве его элементов. Этот метод вернет 2D-массив с заданным количеством строк и столбцов.

для создания массива используйте этот метод, как показано ниже.

Использовать Массив Понимания

в JavaScript 1.7 и выше вы можете использовать выделения массива для создания двумерных массивов. Вы также можете фильтровать и / или манипулировать записями при заполнении массива и не использовать циклы.

вы можете создать любое n x m массив, который вы хотите, и заполните его значением по умолчанию, вызвав

больше примеров и документации можно найти здесь.

обратите внимание, что это не стандартная функция, но.

для любителей одного лайнера массив.от ()

еще один (из комментария по dmitry_romanov) использовать Array ().fill ()

мой подход очень похож на ответ @Bineesh, но с более общим подходом.

вы можете объявить двойной массив следующим образом:

и хранение и доступ к содержимому следующим образом:

это напечатает ожидаемый результат

Я нашел ниже самый простой способ:

Я должен был сделать гибкую функцию массива, чтобы добавить к ней «записи» по мере необходимости и иметь возможность обновлять их и делать любые вычисления, прежде чем отправлять их в базу данных для дальнейшей обработки. Вот код, надеюсь это поможет :).

Не стесняйтесь, чтобы оптимизировать и / или указать на ошибки 🙂

Javascript не поддерживает двумерные массивы, вместо этого мы храним массив внутри другого массива и извлекаем данные из этого массива в зависимости от того, к какой позиции этого массива вы хотите получить доступ. Помните, что нумерация массивов начинается с ноль.

Пример Кода:

ниже одного, создает матрицу 5×5 и заполняет их null

вот быстрый способ, который я нашел, чтобы сделать двумерный массив.

вы можете легко превратить эту функцию в функцию в ES5.

почему это работает: new Array(n) конструктор создает объект с прототипом Array.prototype и затем присваивает объекту length , что приводит к ненаселенному массиву. Из-за отсутствия фактических членов мы не можем запустить Array.prototype.map функция на нем.

однако, когда вы предоставляете более одного аргумент конструктора, например, когда вы делаете Array(1, 2, 3, 4) конструктор будет использовать arguments объект для создания и заполнения Array правильно объект.

по этой причине, мы можем использовать Array.apply(null, Array(x)) , потому что apply функция распространит аргументы в конструктор. Для разъяснения, делает Array.apply(null, Array(3)) эквивалентно doing Array(null, null, null) .

теперь, когда мы создали фактический заполненный массив, все, что нам нужно сделать, это вызвать map и создать второй слой ( y ).

вы можете выделить массив строк, где каждая строка представляет собой массив одинаковой длины. Или вы можете выделить одномерный массив с элементами строк * столбцов и определить методы сопоставления координат строк/столбцов индексам элементов.

какую бы реализацию вы ни выбрали, если вы обернете ее в объект, вы можете определить методы доступа в прототипе, чтобы сделать API простым в использовании.

В предыдущей статье мы поговорили о том что такое одномерный массив и как с ним работать. В этой статье мы поговорим уже о многомерном массиве.

Многомерный массив это массив, у которого один или больше элементов, являются также массивами. В зависимости от глубины объявления, в частности он может называться двумерным массивом(2 уровня) либо трёхмерным массивом(3 уровня) либо четырехмерным(4 уровня) и так далее.

Самый популярный, после одномерного массива, который чаще всего используется это двумерный массив. Именно его, изучим более подробно.

Структура двумерного массива

Как видите, элементы двумерного массива являются одномерные массивы. Если бы эти одномерные массивы содержали ещё массивы, то массив arr был бы уже трёхмерным.

Для примера давайте создадим три простых массивов и заполним их данными. Первого мы заполним чётными числами, второго заполним нечётными числами, а третьего какими-то произвольными данными.

Для того чтобы посмотреть что находится внутри массива можно воспользоваться таким инструментом как console.

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

Чтобы увидеть результат, необходимо открыть консоль в браузере. В Google Chrome это делается так: нажимаем правый клик мыши на странице, и из контекстного меню выбираем последнею опцию “Просмотреть код”, то есть инспектор. В английской версии, эта опция называется Inspect.

И ниже появится панель инструментов разработчика. В ней необходимо перейти во вкладку Console(Консоль).

Теперь для того чтобы создать двумерный массив, необходимо объявить его, и добавить в нём одномерные массивы, которые создали выше.

Посмотрим в консоль содержимое данного массива.

перебор двумерного массива

Для начала научимся, как обратится к элементам двумерного массива.

Как и с одинарными массивами, обращение к элементам делается по их индексам.

Для примера давайте выведем на экран, элемент с индексом 3 из массива с нечётными числами(oddNumbers). Индекс одномерного массива oddNumbers в двумерном массиве twoDimens равен единице(1).

В массиве twoDimens мы обращаемся к элементу с индексом 1. Элемент, который находится под этим индексом, является массив oddNumbers. И в этом массиве мы уже обращаемся к элементу с индексом 3, который является числом 7.

Теперь приступим к самому вопросу как перебрать двумерный массив.

Перебор двумерного массива делается с помощью двойного цикла. Для примера, сделаем перебор нашего массива twoDimens.

В первом цикле мы делаем перебор самого массива twoDimens. Во втором цикле мы делаем уже перебор самого элемента (массива). Сначала, переменная i равна 0. Поэтому во втором цикле мы сначала делаем перебор первого массива evenNumbers, который имеет индекс 0. И уже внутри второго цикла мы обращаемся к элементам данного массива. Таким образом: twoDimens[0][j]. Где j меняется от 0 до длины массива evenNumbers.

После перебора элементов из первого массива, возвращаемся к первому циклу, инкрементируем переменную i, и переходим к перебору уже второго массива oddNumbers, который имеет индекс 1. И так вот делается перебор каждого элемента двумерного массива twoDimens.

Теперь посмотрим на результат данного перебора:

Вот и все, о чем хотел я рассказать в этой статье. Теперь Вы знаете, как создать двумерный массив, как обратится к элементам двумерного массива и как перебрать двумерный массив. Надеюсь, что всё было понятно. Желаю Вам больших успехов!

Похожие статьи:

  • Javascript массивы
  • События в JavaScript

Понравилась статья?

Тогда поделитесь ею с друзьями и подпишитесь на новые интересные статьи.

Я хочу создать двумерный массив в Javascript, в котором я собираюсь хранить координаты (x, y). Я еще не знаю, сколько пар координат у меня будет, потому что они будут динамически генерироваться пользовательским вводом.

Пример предварительно определенного двухмерного массива:

Думаю, я могу использовать метод PUSH, чтобы добавить новую запись в конец массива.

Как мне объявить пустой двумерный массив, чтобы при использовании моего первого Arr. push () он был добавлен в индекс 0, а каждая следующая запись, записанная с помощью push, получала следующий индекс?

Это, вероятно, очень легко сделать, я новичок в JS, и я был бы признателен, если бы кто-то смог написать короткий рабочий фрагмент кода, который я мог бы изучить. Благодаря

10 ответов

Вы можете просто объявить обычный массив следующим образом:

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

И да, при первом вызове arry.push пара значений будет помещена в индекс 0.

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

Если вы хотите иметь возможность доступа к матрице, как это Матрица [I] [J]

Я считаю наиболее удобным инициировать его в цикле.

так Матрица [0] [0] Матрица [1] [0] вернуть неопределенное значение, а не ошибку «Uncaught TypeError: Невозможно установить свойство« 0 »неопределенного значения»

Если вы хотите инициализировать вместе с созданием, вы можете использовать fill и карта .

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

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

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

Создание пользовательского двумерного массива

Создание пользовательский двумерный массив

С поддержкой JavaScript для литеральные массивы в современных браузерах (это учебник предшествует этому), этот учебник можно считать устаревшим. Тем не менее, мы рассмотрим, как вручную добавить дополнительные измерения в обычный массив в JavaScript и, в частности, как создать собственный 2 размерный массив. Если ничего, это иллюстрирует технику расширения готовые объекты JavaScript самостоятельно.

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

 var myarray=new Array(3) 

Вышеприведенное создает массив с 3 «отсеками для хранения». Надеюсь, это старая вещь для вас. Графически это представляется так:

Двумерный массив создается простым построением на «нормальный» массив. Построение двумерного массива требует, чтобы мы объявить еще один массив поверх КАЖДОГО «стебля» (myarray[0], мой массив[1]…).

Создание двумерного массива

Для начала давайте сначала проиллюстрируем графически, как представлен двумерный массив:

Как видите, чтобы вручную добавить измерение в массив, нам нужно объявить новый массив поверх каждого отдельного массива «стебель». перевод этой идеи к фактическим кодам, как вы увидите, на самом деле очень просто:

 var myarray=new Array(3)
для (я=0; я <3; я++)
myarray[i]=новый массив(3) 

Это просто или как? Что ж, это так. Ключ здесь для петля. Используя цикл for, мы увеличили весь исходный массив, объявление нового массива на каждой "остановке".

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

 myarray[0][0]="Compaq 486"
myarray[0][1]="Compaq 586"
myarray[0][2]="Compaq 686"
myarray[1][0]="Dell 486"
myarray[1][1]="Dell 586"
myarray[1][2]="Dell 686"
мой массив[2][0]="IBM 486"
мой массив[2][1]="IBM 586"
мой массив[2][2]="IBM 686" 

Самая сложная часть двумерного массива может заключаться в сохранении отслеживать все отсеки для хранения в массиве!

Приведенный выше двумерный массив имеет 9-дюймовую память отсеков" (3*3).

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

 var myarray=new Array(3)
для (я=0; я <3; я++)
myarray[i]=new Array(5) 

Если вы знаете свое умножение, вы знаете, как создать массивы с любым количеством отсеков для хранения!

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

Двумерный массив имеет структуру «дерева», где несколько «подпеременных» существуют в одной «основной переменной»:

«Compaq» здесь основная переменная, которая связывает вместе подпеременные (486 568 и т. д.). Вы должны использовать только двумерный массив когда у вас есть ситуация, подобная приведенной выше, когда подгруппа основного переменная нужна.

Многомерный массив в JavaScript - Темы масштабирования

Что такое многомерный массив в JavaScript?

Многомерный массив в javascript — это массив, который имеет один или несколько вложенных массивов. Обычный массив, как мы знаем, представляет собой одномерный массив, доступ к которому можно получить с помощью одного индекса, arr[i], тогда как к двумерному массиву можно получить доступ с помощью двух индексов, arr[i][j]. Аналогично для трехмерный массив arr[i][j][k] и так далее.

Проще говоря, многомерный массив известен как массив массивов и содержит матрицу элементов, как показано на рисунке ниже.

Создание многомерного массива

Многомерный массив изначально отсутствует в JavaScript. Следовательно, в JavaScript нет прямого способа создать многомерный массив. Однако мы можем определить массив элементов для создания многомерного массива таким образом, чтобы каждый элемент, хранящийся в массиве, также был другим массивом.

Существует два способа создания многомерного массива в JavaScript:

  1. Использование литерала массива: Самый быстрый способ создать многомерный массив в JavaScript — использовать запись литерала массива.
  1. Использование конструктора массива: Другой способ — использовать конструктор массива. Это делается с помощью метода Array().

Доступ к элементам массива

Чтобы получить доступ к элементам двумерного массива, мы используем две квадратные скобки, где первая квадратная скобка даст вам массив, присутствующий в указанном индексе строки внешнего массива, а вторая квадратная скобка используется для доступа к конкретному элементу внутреннего массива, присутствующему в индексе данного внешнего массива.

Доступ к многомерному массиву осуществляется так же, как и к одномерному массиву. Единственная разница в том, что мы должны использовать два или более индекса для доступа к элементам многомерного массива в javascript.

Свойства многомерного массива в JavaScript

Существуют некоторые свойства многомерного массива в JavaScript:

  1. длина: Функция длины используется для возврата размера указанного массива.
  1. typeof: Оператор typeof используется для возврата типа указанного массива.
  1. isArray(): Тип возвращаемого значения функции isArray(): Boolean . Это помогает определить, является ли переданный массив массивом или нет.

Добавление элемента в многомерный массив

Чтобы добавить элементы в многомерный массив в javascript, мы можем использовать метод push() Array или использовать нотацию индекса.

Метод push() добавит элемент в конец заданного массива, тогда как метод splice() добавит элемент по указанному индексу.

Добавление элемента во внешний массив

Мы можем добавить элемент во внешний массив, как показано ниже:

Вывод:

Добавление элемента во внутренний массив

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

Использование обозначения индекса:

Вывод:

Использование метода push():

Вывод:

Мы можем добавить новый элемент в любой внутренний массив или поместить весь массив в конце массива.

Удаление элемента из многомерного массива

Мы можем использовать метод pop для удаления элементов из многомерного массива в javascript. Метод pop возвращает массив после удаления последнего элемента индекса конкретного массива.

Удалить элемент из внешнего массива

Вывод:

Удалить элемент из внутреннего массива

Вывод:

Использовать метод splice() для удаления элемента по указанному индексу

Метод splice() также можно использовать для

удаления элемента из определенного индекса в многомерном массиве в javascript.

Вывод:

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

Метод () Описание
push() Этот метод используется для вставки элемента в последний индекс массива. В результате длина массива в итоге увеличится на 1,
pop() Этот метод используется для удаления элемента из последнего индекса массива. В результате длина массива со временем уменьшится на 1.
sort() В зависимости от указанного типа массива этот метод сортирует элементы массива в алфавитном или числовом порядке. Порядок массива также будет постоянно изменен методом Sort.
reverse() Метод reverse() используется для перестановки элементов в массиве. Результатом этого метода является превращение последнего элемента индекса в первый, а первого элемента индекса в последний.
indexOf() Этот метод используется для поиска первого появления определенного элемента в массиве. t вернет -1, если элемент отсутствует.
shift() При использовании этого метода первый элемент массива удаляется, а остальные элементы перемещаются влево.
unshift() Этот метод используется для сдвига всех элементов массива вправо при добавлении нового элемента к индексам 0.
splice() С помощью этого метода можно добавить или удалить из массива любое количество элементов.

Перебор многомерного массива

Использование метода forEach() массива для перебора элементов внешнего массива

Мы можем использовать метод forEach() для перебора элементов внешнего массива многомерного массива в javascript.

Вывод:

Использование метода массива forEach() для перебора элементов внутреннего массива

Мы можем использовать метод forEach() для перебора элементов внутреннего массива многомерного массива и в javascript.

Вывод:

Использование цикла for для перебора многомерного массива

Мы также можем использовать цикл for для обхода элементов многомерного массива в javascript.

Выход:

 20
Праньшу
18
Самир
 

Заключение

  • Многомерный массив в javascript — это массив, который имеет один или несколько вложенных массива . Обычный массив, который мы знаем, является одномерным массивом.
  • Доступ к одномерному массиву можно получить с помощью одного индекса arr[i], где, как к двумерному массиву можно получить доступ с помощью двух индексов, arr[i][j]; аналогично для трехмерного массива arr[i][j][k] и так далее.
  • Проще говоря, многомерный массив в javascript известен как массив массивов , а многомерный массив содержит матрицу элементов.
  • Многомерный массив изначально отсутствует в JavaScript. Мы можем определить массив элементов для создания многомерного массива таким образом, что каждый элемент, хранящийся в массиве, также является другим массивом.