3 вещи, которые вы не знаете о массивах JavaScript
Массивы широко используется в языках программирования; они есть специальные переменные это может быть использовано для хранения нескольких значений одновременно. Однако, когда дело доходит до JavaScript, так же просто, как учиться, всегда есть что изучить.
В этом посте мы рассмотрим три менее известные, но важные функции массивов JavaScript, которые вы, возможно, не знали раньше.
1. Добавить пользовательские свойства в массивы
Если бы вы исследовали Интернет в поисках исчерпывающего определения массивов JavaScript, вы обнаружите, что почти каждый источник в обязательном порядке будет указывать массив как то, что он действительно является, объект.
Фактически, почти все, с чем мы имеем дело в JavaScript, оказаться объектом. В JavaScript есть два типа данных, примитивы а также объекты, но примитивы всегда заключены в объекты.
Массив, функция, дата и т. Д. предопределенные объекты JavaScript которые имеют встроенные методы, свойства и собственный стандартизированный синтаксис.
Массивы JavaScript могут иметь три разных типа свойств:
- Индексы массива также свойства
- Встроенные свойства
- Пользовательские свойства Вы можете добавить самостоятельно
Первые два более известны, вы можете использовать их каждый день, но давайте посмотрим их быстро, прежде чем перейти к тому, как вы можете добавить свое собственное свойство в массив.
Индексы как свойства
Массивы JavaScript используют Синтаксис квадратной скобки, такие как var ary = ["orange", "apple", "lychee"];
.
Индексы элементов массива в основном свойства где имена свойств являются всегда неотрицательные целые числа.
пара индекс-элемент массива похожа на пара ключ-значение объекта.
Индексы являются уникальной особенностью объекта Array, и в отличие от других встроенных свойств они могут быть установить только с помощью синтаксиса скобок, такие как ary [3] = "персик";
.
Встроенные свойства
Массивы также имеют встроенные свойства, такие как array.length
. длина
свойство имеет целочисленное значение, которое обозначает длину массива.
В целом, встроенные свойства часто можно найти в предопределенных объектах JavaScript, таких как массивы. Наряду со встроенными методами они помогают настроить общие объекты так, чтобы объекты соответствовали различным потребностям.
К встроенным свойствам можно получить доступ либо с object.key
или объект [ «ключ»]
синтаксис. Так что вы также можете написать ичная [ «длина»]
получить доступ к длине массива.
Создание пользовательских свойств для объекта Array
Теперь давайте поговорим о добавление ваших собственных свойств в массивы. Массивы - это предопределенные объекты, которые хранят разные типы значений с разными индексами..
Обычно нет необходимости добавлять пользовательские свойства в массив; это одна из причин, по которой начинающих обычно не учат этой функции. На самом деле, если вы хотите обрабатывать массив как обычный объект, добавляя к нему пары ключ-значение, вы также можете используйте нормальный объект для вашей цели. Но это не значит, что нет Особые случаи где вы можете использовать тот факт, что массив является объектом, добавив к нему одно или несколько пользовательских свойств.
Например, вы можете добавить собственное свойство в массив, который идентифицирует «вид» или «класс» его элементов, как вы можете видеть это в примере ниже.
var ary = ["orange", "apple", "lychee"]; ary.itemClass = "фрукты"; console.log (ary + "are" + ary.itemClass); // "апельсин, яблоко, личи - это фрукты"
Обратите внимание, что пользовательское свойство, которое вы добавляете в массив: перечислимый, это означает, что он будет поднят петлями, такими как для ... в
заявление.
2. Цикл элементов массива
Вы, вероятно, говорите «Я это уже знаю», что, скорее всего, правда, вы уже знаете, как проходить элементы массива. Но верно также и то, что выражение «проход по элементам массива» немного абстрактно, поскольку то, что мы на самом деле делаем, это индексы массива.
Поскольку индексы массивов состоят только из неотрицательные целые числа, мы повторяем целочисленное значение, обычно начиная с нуля и заканчивая полной длиной массива, затем используем это повторяемое значение для доступа к элементу массива с заданным индексом.
Однако, начиная с ECMAScript6, есть способ прямой цикл по значениям массива без использования индексов, и это можно сделать с помощью для ... из
петля.
В массиве для ... из
цикл будет проходить через элементы массива в порядке индексов, другими словами, он позаботится о перебора индексов и получения существующее значение массива по заданному индексу. Этот цикл идеален, если вы просто хотите просмотреть все элементы массива и работать с ними..
var ary = ["orange", "apple", "lychee"]; for (пусть item of ary) console.log (item); // "апельсин", "яблоко", "личи"
Для сравнения, с обычным за
цикл, мы получаем индексы вместо значений в качестве вывода.
var ary = ["orange", "apple", "lychee"]; для (var item = 0; item < ary.length; item++) console.log(item); // 0, 1, 2
3. Количество элементов не его длина
Как правило, когда мы говорим о длина массива, мы думаем, что это либо число значений, которое содержит массив, либо длина, которую мы дали массиву вручную. Однако в действительности длина массива зависит от самый большой существующий индекс внутри него.
Длина очень гибкое свойство. Независимо от того, фиксировали ли вы длину массива заранее или нет, если вы продолжаете добавлять значения в массив, его длину продолжает расти соответственно.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6
В приведенном выше примере вы можете видеть, что я дал массиву только одно значение с индексом 5, а длина становится 6. Теперь, если вы думаете, что, добавив значение с индексом 5, массив автоматически создал индексы от 0 до 4 , затем ваше предположение неверно. Есть действительно нет индексов от 0 до 4 в этом массиве. Вы можете проверить это, используя в
оператор.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 в аре); // ложный
Массив ичных
это то, что мы называем "разреженный" массив, массив где индексы не создаются непрерывно, а также есть пробелы. Противоположностью «разреженного» массива является "плотный" массив где индексы непрерывно существуют в массиве, а количество элементов такое же, как длина
.
длина
собственность также способна усечение массива, убедитесь, что самый высокий индекс в массиве всегда меньше самого себя, как длина
всегда численно больше самого высокого индекса по умолчанию.
В приведенном ниже примере вы можете увидеть, как мы теряем элемент с индексом 5, уменьшая длина
из ичных
массив.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); // 2 console.log (ary [5]); // не определено
Дальнейшее чтение
- 10 терминов JavaScript, которые вы должны знать уже сейчас
- 4 необычных, но полезных утверждения Javascript, которые вы должны знать
- Оптимизация кода с помощью JS Hint - инструмента для раскрашивания Javascript