Використання indexOf (JavaScript) при роботі з масивами і рядками

11 0 Новини високих технологій

javascript - унікальний мова програмування і невід'ємна складова браузера, синтаксис і семантика настільки органічно втілюють у собі кращі традиції сучасної розробки алгоритмів, що багато в чому є прикладом для інших мов, що представляють аналогічні можливості в більш громіздкому варіанті.

[thumb]http://hi-news.pp.ua/uploads/posts/2017-11/vikoristannya-indexof-javascript-pri-robot-z-masivami-ryadkami_921.jpeg[/thumb]
Метод indexOf javascript не позиціонує як операцію пошуку, але з її допомогою можна визначити, де знаходиться символ або підрядок в рядку. Цей же метод застосуємо до звичайних масивів.

Загальний опис методу

Загальний стиль синтаксису javascript визначає, що у рядків і масивів є метод indexOf, який обчислює, де починається шукана підрядок (або просто символ) в рядку, де цей метод був застосований.


У контексті загальної логіки мови число може автоматично перетворюватися в тип даних «рядок». Мова надає програмісту описувач «var» без можливості уточнення, який саме тип даних потрібно було описати. Можливість маніпулювання типами даних - чудова якість javascript. При описі змінної програміст може вказати початкове значення і, відповідно, встановити її тип, але в потрібний момент часу цей тип зміниться у відповідності з вимогами конструкції або виразу, де змінна буде використана.

Приклад застосування методу

Описано три змінних: рядок символів - «str», звичайний масив - «arr» і асоціативний масив - «ass». На веб-сторінці є дів з id='scCurrInfo', в який буде поміщений результат. Метод indexOf javascript надає для рядків і звичайних масивів.


Всі приклади вибірки (пошуку) підрядків наведені в еквівалентному використанні. Вихідні дані представлені однаковим чином.
[thumb]http://hi-news.pp.ua/uploads/posts/2017-11/vikoristannya-indexof-javascript-pri-robot-z-masivami-ryadkami_402.jpeg[/thumb]
Використання javascript indexOf array подібно чисто рядковий варіанту: якби цей масив був представлений рядком - ефект був би аналогічним. І хоча рядкове представлення даних, в багатьох випадках, ефективніше застосування масивів, застосування методу indexOf для даних типу array також має сенс. Результат виконання наведеного коду показує очевидне відповідність між застосуванням методу до звичайних масивів і класичний варіант javascript: indexOf string.
[img]http://hi-news.pp.ua/uploads/posts/2017-11/vikoristannya-indexof-javascript-pri-robot-z-masivami-ryadkami_973.jpeg[/img]
Асоціативні масиви відрізняються своєю природою, відносяться до особливої логіки об'єктно-орієнтованого програмування на цій мові. До них метод indexOf непридатний.

Правила застосування методу

Незалежно до чого (рядок, масив) застосовується метод indexOf, javascript дозволяє вказувати другим параметром число: позицію, після якої слід шукати входження потрібної підрядка (символу). Пошук завжди йде до першого входження, тобто результатом методу буде число: позиція (індекс масиву), з якої починається шукана підрядок (символ). Відлік позиції та індексу масиву починається з нуля. Якщо в рядку чи масиві нічого не буде знайдено, результатом буде від'ємне значення - «-1».
[thumb]http://hi-news.pp.ua/uploads/posts/2017-11/vikoristannya-indexof-javascript-pri-robot-z-masivami-ryadkami_254.jpeg[/thumb]
Синтаксис мови допускає будь-яку, синтаксично коректні, комбінацію методів і результатів їх виконання. Простіше кажучи, немає необхідності вводити нові змінні. Можна використовувати метод в будь-яких поєднаннях з іншими методами. Можна отримати з дерева DOM який-небудь текст, масив дівов чи іншу сукупність даних і indexOf javascript застосувати в точній відповідності з його призначенням.

Ефективні варіанти обробки даних

Синтаксис і семантика javascript, особливо стосовно об'єктно-орієнтованого програмування, заслуговують поваги, однак це не заважає розробнику формулювати свої алгоритми згідно з його «власною семантикою». Будь-яка задача несе в собі унікальний сенс, який можна укласти в пропоновані мовою структури даних і конструкції їх обробки. Але набагато простіше будувати об'єкти розв'язуваної задачі, і в їх термінах формулювати її рішення. Це не тільки більш ефективний результат, але і більш зрозумілий алгоритм, меншу кількість помилок у коді і хороша можливість модифікацій результату згодом: не буде необхідності згадувати: що було зроблено і навіщо.
[thumb]http://hi-news.pp.ua/uploads/posts/2017-11/vikoristannya-indexof-javascript-pri-robot-z-masivami-ryadkami_445.jpeg[/thumb]
У програмуванні дуже важливий зрозумілий і читабельний код, особливо, коли доведеться його подальший розвиток через деякий час. У цьому контексті програміст може представити дані у звичайних рядках, рядки розмістити в об'єктах, а смислове навантаження розмістити за методами, які через indexOf будуть вибирати потрібні елементи в потрібний час.