3 ствари које не знате о ЈаваСцрипт матрицама
Арраис су широко коришћена особина програмских језика; су посебне варијабле који се могу користити за складиштење вишеструких вредности у исто време. Међутим, када је реч о ЈаваСцрипт-у, лако је научити, увијек постоји више за истраживање.
У овом посту, погледаћемо три мање познате, али важне карактеристике ЈаваСцрипт поља које можда нисте познавали раније.
1. Додајте прилагођена својства у низове
Ако бисте претраживали интернет тражећи детаљну дефиницију ЈаваСцрипт поља, открит ћете да ће готово сваки извор без кварова навести низ као што стварно је, објекат.
У ствари, скоро све што имамо у раду са ЈаваСцрипт-ом испоставило се да је објекат. У ЈаваСцрипту постоје две врсте типова података, примитиви и објеката, али примитиви су увек омотани унутар објеката.
Арраи, Фунцтион, Дате, итд предефинисане ЈаваСцрипт објекте који имају уграђене методе, својства и сопствену стандардизовану синтаксу.
ЈаваСцрипт поља могу имати три различита типа својстава:
- Индекси низа су такође својства
- Уграђене особине
- Цустом пропертиес можете сами додати
Прва два су више позната, можете их користити сваки дан, али хајде да их брзо видимо пре него што скочимо у начин на који можете додати сопствено прилагођено својство низу.
Индекси као Својства
ЈаваСцрипт поља користе синтакса квадратног заграда, као такав вар ари = ["наранџа", "јабука", "личи"];
.
Индекси елемената низа су у основи својства где имена имовине су увек не-негативни цели бројеви.
Тхе пар индекс-елемената низа је сличан пар кључ / вредност објекта.
Индекси су јединствена карактеристика Арраи објекта, а за разлику од других уграђених својстава, они могу бити поставите само са синтаксом заграда, као такав ари [3] = "бресква";
.
Уграђене особине
Низови такође имају уграђена својства, као такав арраи.ленгтх
. Тхе дужина
својство носи целобројну вредност означава дужину низа.
Генерално, уграђене особине се често могу наћи у унапред дефинисаним ЈаваСцрипт објектима као што су поља. Уз уграђене методе помажу прилагодите генеричке објекте тако да објекти одговарају за различите потребе.
Уграђеним особинама се може приступити са било којим објецт.кеи
или објецт ["кеи"]
синтакса. Можете и да пишете ари ["ленгтх"]
да бисте приступили дужини низа.
Креирајте прилагођена својства за објекат поља
Хајде да разговарамо додавање властитих својстава у низове. Низови су предефинисани објекти који складиште различите типове вредности при различитим индексима.
Обично није потребно додавати прилагођена својства низу; ово је један од разлога зашто се почетници обично не уче о овој функцији. У ствари, ако желите да третирате низ као нормалан објекат додајући га паровима кључ / вредност, можете и ви користите нормалан објекат за своју сврху. Али, то не значи да их нема посебни случајеви где можете искористити чињеницу да је низ објект, додајући му један или више прилагођених својстава.
На пример, можете додати прилагођено својство низу који идентификује "врсту" или "класу" њених елемената, као што можете видјети у примјеру испод.
вар ари = ["наранџа", "јабука", "личи"]; ари.итемЦласс = "плодови"; цонсоле.лог (ари + "аре" + ари.итемЦласс); // "наранџа, јабука, личи су воће"
Имајте на уму да је прилагођено својство које додате матрици енумерабле, што значи да ће их покупити петље као што је фор… ин
изјава.
2. Окрените се кроз елементе матрице
Вероватно кажете "Знам то већ", што је вероватно тачно, већ знате како да прођете кроз елементе низа. Али исто тако је истина да је изрека "петља кроз елементе низа" мало апстрактна, јер оно што заправо петљамо кроз индекси низа.
Пошто су индексни низови само састављени од не-негативни цели бројеви, понављамо целобројну вредност која обично почиње од нуле и завршава се целом дужином низа, а затим употребом те поновљене вредности приступамо елементу поља у датом индексу.
Међутим, још од ЕЦМАСцрипт6 постоји начин да се то уради директно петље кроз вредности поља без узнемиравања са индексима, а то се може урадити коришћењем фор… оф
лооп.
У низу, фор… оф
петља ће кружити кроз елементе низа по реду индекса, другим ријечима, побринут ће се за понављање индекса и добивање постојеће вредности поља по датом индексу. Ова петља је идеална ако желите да пређете кроз све елементе низа и радите са њима.
вар ари = ["наранџа", "јабука", "личи"]; за (лет итем оф ари) цонсоле.лог (итем); // "наранџаста", "јабука", "личи"
За поређење, са редовним за
петља, добијамо индексе уместо вредности као излаз.
вар ари = ["наранџа", "јабука", "личи"]; за (вар итем = 0; ставка < ary.length; item++) console.log(item); // 0, 1, 2
3. Број елемената није његова дужина
Типично, када говоримо о дужина низа, мислимо да је то или број вредности које поље држи, или дужина коју смо ручно дали низу. Међутим, у стварности, дужина низа зависи од тога највећи постојећи индекс унутра.
Дужина је а веома флексибилна имовина. Да ли сте већ раније фиксирали дужину низа или не, ако наставите да додајете вредности у поље, његову дужину сходно томе и даље расте.
вар ари = []; ари.ленгтх = 3; цонсоле.лог (ари.ленгтх); // 3 ари [5] = "абцд"; цонсоле.лог (ари.ленгтх); // 6
У горњем примјеру, можете видјети да сам дала низу само једну вриједност на индексу 5, а дуљина постаје 6. Сада, ако мислите да додавањем вриједности на индекс 5, поље је креирало индексе од 0 до 4 аутоматски , онда Ваша претпоставка је нетачна. Заиста постоје нема постојећих индекса од 0 до 4 у том низу. Ово можете да проверите користећи у
оператор.
вар ари = []; ари.ленгтх = 3; цонсоле.лог (ари.ленгтх); // 3 ари [5] = "абцд"; цонсоле.лог (ари.ленгтх); // 6 цонсоле.лог (0 инари); // фалсе
Низ ари
је оно што ми зовемо "ријетки" низ, низ где су индекси се не креирају непрекидно, и имају празнине. Супротно од "ријетких" поља је "Густ" низ где индекси постоје континуирано у низу, а број елемената је исти као и дужина
.
Тхе дужина
имовина је такође способна скраћивање низа, осигуравајући да је највиши индекс присутан у низу увијек мање од себе, као дужина
је увек нумерички већи од највишег индекса.
У доле наведеном примјеру, можете видјети како изгубимо елемент у индексу 5 смањењем дужина
од ари
арраи.
вар ари = []; ари.ленгтх = 3; цонсоле.лог (ари.ленгтх); // 3 ари [5] = "абцд"; цонсоле.лог (ари.ленгтх); // 6 ари.ленгтх = 2; цонсоле.лог (ари.ленгтх); // 2 цонсоле.лог (ари [5]); // недефинисан
Додатна литература
- 10 ЈаваСцрипт израза које бисте требали знати до сада
- 4 не тако уобичајена али корисна Јавасцрипт израза која бисте требали знати
- Оптимизација кода помоћу ЈС Хинта - алатка за повезивање Јавасцрипт-а