Одним из самых распространенных объектов JavaScript, с которыми мы всегда будем работать, являются массивы, и для того.
Script - один из самых распространенных языков программирования, и, как и другие языки, он предоставляет нам возможность работать с многомерными массивами. Итак, многомерные массивы в JavaScript ничем не отличаются от массивов в других языках программирования, и в этом простом учебнике мы научимся создавать и работать с ними.Java
Итак, прежде чем мы начнем, важно понять, что многомерный массив в JavaScript - это просто массив, но с N измерениями. Итак, что же на самом деле представляет собой размерность массива? Давайте начнем с этого.
Ну, думайте о размерности массива просто как о том, насколько вложен элемент массива в массив из родительского массива. На этом мы можем закончить, но давайте воспользуемся более декларативным примером, чтобы перейти к следующему разделу работы с этим вариантом структуры данных. Для этого учебного пособия по многомерным массивам в JavaScript мы будем использовать простой пример с ботинками.
const shoes = ["red", "green", "blue", "pink"];
Итак, на верхнем уровне у нас есть четыре типа обуви по цвету. Это то, что мы видим с первого взгляда, когда посещаем магазин. Итак, мы видим только один уровень категорий обуви, по восприятию. И это дает нам только одно представление об обуви, по свойствам. Это дает нам одно измерение. Итак, насколько мы знаем, размерность этого массива равна единице.
Хорошо, теперь давайте добавим еще одну переменную - размер обуви.
const shoesWithSizes = ?
Как выглядит многомерный массив в JavaScript? Ну, вы правильно догадались. Как будет выглядеть этот многомерный массив?
const shoesWithSizes = [['red', 40], ['red', 41], ['red', 42], ['green', 40], ['green', 41]]
Что изменилось до сих пор в этом учебнике по многомерным массивам на JavaScript? Мы добавили еще одну переменную в картину, и с ее помощью мы теперь можем классифицировать наши фигурки по двум свойствам - цвету и размеру. Аналогично, наш массив теперь имеет размерность 2.
Мы только что создали многомерный массив в JavaScript! Итак, что h
Итак, теперь мы видим, что для того, чтобы получить заданную обувь, например, красную 40, нам нужно сделать следующее:
ShoesWithSizes[0][1] → сначала мы получим красный, а затем 40. В большинстве случаев вы не будете индексировать многомерный массив в JavaScript таким образом, вы будете делать это динамически. То же самое касается и создания.
Итак, допустим, у нас есть список обуви, и мы можем видеть ее только по цветам. Но нам говорят, что в этом списке каждый цвет имеет размеры от 40 до 42. Теперь нам нужно преобразовать это в многомерный массив.
Что ж, давайте создадим features.How
const colors = ["red", "green", "blue", "pink"]; const sizes = [40, 41, 42];
Итак, как мы можем создать многомерный массив из них? Ну, с помощью циклов! Мы будем использовать цикл javascript for loop для этого многомерного массива в учебнике JavaScript. Вы, конечно, можете использовать for each, но это зависит только от вас. Только помните, что выбранный вами вариант должен позволять выйти из цикла во вложенности цикла.
if (colors.length > sizes.length) { for (let i = 0; i < sizes.length; i++) { for (let j = 0; j < colors.length; j++) { const sizeColorUnit = [sizes[i], colors[j]]; shoeSizes.push(sizeColorUnit); } } } else { for (let i = 0; i < colors.length; i++) { for (let j = 0; j < sizes.length; j++) { const sizeColorUnit = [sizes[j], colors[i]]; shoeSizes.push(sizeColorUnit); } } } console.info("shoeSizes", shoeSizes);
Итак, поясним:
Обратите внимание, что перед выполнением цикла мы проверяем размер массивов. Это всегда хорошая идея - сначала выполнить цикл внутри небольшого массива, чтобы снизить сложность алгоритма. Я знаю, что это, возможно, новый термин, но он выходит за рамки данной темы, но, возможно, мы рассмотрим его позже.
Итак, если у colors больше элементов, мы перебираем их внутри sizes и наоборот.
следующая часть - как зациклить многомерный массив в JavaScript. Мы хотим создать многомерный массив, поэтому нам нужно подумать об одной главной вещи: уровнях вложенности. Уровни вложенности - это то, что переводится в N измерений массива. В данном случае у нас есть уровень вложенности под i-м элементом и еще один под j-м элементом, поэтому у нас есть многомерный массив из двух уровней.Хорошо, теперь
Мы создали многомерный массив в JavaScript, как же нам получить доступ к его содержимому?
Доступ к массиву всегда должен рассматриваться в терминах размерности. То же самое относится и к нашему массиву. Нам нужно знать уровни. Точку. Давайте посмотрим, как мы можем это сделать.
Ant для получения красного цвета размером 41, то это будет означать, что мы пройдемся по массиву, сравнивая i-й и j-й элементы, чтобы увидеть, дают ли они нам соответствие красного цвета и 41 соответственно, в зависимости от свойства.Итак, предположим, что мы w
const color="red"; const size = 41; let itemInList = 0; let matchFound = false; for (let i = 0; i < shoes.length; i++) { const shoe = shoes[i]; for (let j = 0; j < shoe.length; j++) { if (shoe[0] === size && shoe[1] === color) { matchFound = true; itemInList = i + 1; break; } } if (matchFound) { break; } }
Итак, здесь мы задаем нужный нам тип показа, указывая цвет и размер. Затем мы задаем переменную itemInList, которая сообщит нам, какой предмет в списке обуви (возможно, в магазине на полке) соответствует нашему поиску. И наконец, мы определяем еще одну переменную matchFound, которая поможет нам выйти из многомерного массива.
Теперь, в этой строке:
if (shoe[0] === size && shoe[1] === color)
Мы просто сравниваем наши свойства со свойствами в списке.
Теперь обратите внимание на эти три строки
matchFound = true; itemInList = i + 1; break;
Сначала мы проверяем, было ли найдено точное совпадение, затем устанавливаем значение true. После этого мы указываем, в какой позиции они появляются, и поэтому добавляем i + 1, потому что в реальной жизни элементы начинаются с индекса 1, а не с индекса 0. Наконец, мы прерываемся, чтобы выйти из внутреннего цикла.
Найден, то мы выходим из него.
if (matchFound) { break; }
Вот так можно получить доступ к элементам в многомерном массиве.
Заключение
Размерность массива.
С этими словами, счастливого кодирования!
Вы заинтересованы в изучении JavaScript? Посмотрите похожие статьи здесь: Похожие статьи
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.