3 неща, които не знаете за JavaScript масиви
Масивите са широко използвана функция на езиците за програмиране; те са специални променливи които могат да се използват за съхраняване на няколко стойности едновременно. Въпреки това, когато става въпрос за JavaScript, толкова лесно, колкото е да се учи, винаги има какво да се изследва.
В тази публикация ще разгледаме три по-малко известни, но важни функции на JavaScript масивите, които може да не сте познавали преди.
1. Добавете персонализирани свойства към масиви
Ако искате да претърсите интернет, търсейки детайлна дефиниция на масиви на JavaScript, ще откриете, че почти всеки източник, без да се проваля, ще изброява масив като това, което той наистина ли е, предмет.
Всъщност почти всичко, с което се занимаваме в JavaScript, ще бъде се окаже обект. В JavaScript има два вида типове данни, примитиви и обекти, но Примитивите винаги са обвити в обекти.
Масив, функция, дата и т.н. предварително дефинирани JavaScript обекти които имат вградени методи, свойства и свой собствен стандартизиран синтаксис.
Масивите на JavaScript могат да имат три различни типа свойства:
- Индекси на масив също са свойства
- Вградени свойства
- Персонализирани свойства можете да добавите сами
Първите две са по-добре известни, можете да ги използвате всеки ден, но нека да ги видим бързо, преди да скочим върху това как можете да добавите свой собствен персонализиран имот към масив.
Индекси като свойства
Масивите на JavaScript използват синтаксис с квадратни скоби, като var ary = ["портокал", "ябълка", "личи"];
.
Индексите на елементите на масива са основно Имоти където имена на имоти сте винаги са неотрицателни цели числа.
Най- двойка индекс-елемент на масив е подобен на двойка ключ-стойност на обект.
Индексите са уникална характеристика на обекта Array и за разлика от другите вградени в тях свойства, те могат да бъдат задайте само със синтаксиса на скобите, като ary [3] = "праскова";
.
Вградени свойства
Масивите също имат вградени свойства, като array.length
. Най- дължина
собственост носи цяло число стойност означава дължината на масив.
Като цяло, вградените свойства могат да бъдат често срещани в предварително дефинирани JavaScript обекти като масиви. Наред с вградените методи, те помагат персонализирате общите обекти, така че обектите да са подходящи за различни нужди.
Вградените свойства могат да бъдат достъпни или с object.key
или възрази [ "ключ"]
синтаксис. Така че можете да пишете матрични [ "дължина"]
за достъп до дължината на масив.
Създайте персонализирани свойства за обекта на масива
Сега, нека поговорим добавяне на собствени свойства към масиви. Масивите са предварително дефинирани обекти, които съхраняват различни типове стойности при различни индекси.
Обикновено няма нужда да добавяте персонализирани свойства към масив; това е една от причините, поради която начинаещите обикновено не се учат за тази функция. Всъщност, ако искате да третирате масив като нормален обект, като добавите към него двойки ключ-стойност, може и да го направите използвайте нормален обект за вашата цел. Но това не означава, че няма специални случаи където можете да използвате факта, че масивът е обект, като добавите към него един или повече персонализирани свойства.
Например, можете да добавите собствено свойство към масив, който идентифицира "вида" или "класа" на неговите елементи, както можете да видите в примера по-долу.
var ary = ["портокал", "ябълка", "личи"]; ary.itemClass = "плодове"; console.log (ary + "са" + ary.itemClass); // "портокал, ябълка, личи са плодове"
Обърнете внимание, че персонализираното свойство, което добавяте към масив, е enumerable, което означава, че ще бъдат взети от примки като например за… в
изявление.
2. Прекарайте през елементите на масива
Вероятно казвате "вече знам", което най-вероятно е вярно, вече знаете как да преминете през елементите на масива. Но също така е вярно, че изречението "loop through array elements" е малко абстрактен, тъй като това, което ние действително обхождаме, са индекси на масива.
Тъй като индексите на масивите са съставени само от неотрицателни цели числа, повторяваме целочислена стойност, обикновено започваща от нула и завършваща с пълната дължина на масива, след което използваме тази повторена стойност за достъп до елемента на масив при даден индекс.
Въпреки това, тъй като ECMAScript6, има начин да директно чрез циклични стойности на масива без да се притеснява с индекси и това може да се направи с помощта на за… на
контур.
В масив, за… на
цикълът ще прелиства елементите на масива по реда на индексите, с други думи, той ще се погрижи за повторение на индексите и получаване на съществуващата стойност на масива на даден индекс. Този цикъл е идеален, ако искате да прегледате всички елементи на масива и да работите с тях.
var ary = ["портокал", "ябълка", "личи"]; за (нека елемент от ary) console.log (елемент); // "портокал", "ябълка", "личи"
За сравнение, с редовните за
loop, получаваме индексите вместо стойностите като продукция.
var ary = ["портокал", "ябълка", "личи"]; за (var item = 0; елемент < ary.length; item++) console.log(item); // 0, 1, 2
3. Броят на елементите не е неговата дължина
Обикновено, когато говорим за дължина на масив, ние смятаме, че това е или броят на стойността, която масивът притежава, или дължината, която сме дали на масива ръчно. В действителност обаче дължината на масива зависи от това най-големия съществуващ индекс вътре в нея.
Дължината е a много гъвкава собственост. Дали вече сте фиксирали дължината на масив или не, ако продължавате да добавяте стойности към масива, неговата дължина съответно нараства.
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 inary); // false
Масивът мерното
е това, което ние наричаме a "рядък" масив, масив, където са индексите не се създават непрекъснато, и има пропуски. Обратното на "рядко" масив е "плътен" масив където индексите съществуват непрекъснато в масива, а броят на елементите е същият като дължина
.
Най- дължина
собственост също е в състояние отрязване на масив, Уверете се, че най-високият индекс в масива е винаги по-малко от себе си, като дължина
е винаги по-голям от най-високия индекс по подразбиране.
В примера по-долу можете да видите как губим елемента при индекс 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 (ари [5]); // undefined
Допълнителна информация
- 10 JavaScript термина, които трябва да знаете досега
- 4 не толкова често срещани, но полезни изявления на Javascript, които трябва да знаете
- Оптимизация на кода с JS Hint - инструмент за пресичане на Javascript