Новини високих технологій
» » Javascript Array для збереження необмеженої кількості змінних

Javascript Array для збереження необмеженої кількості змінних

18-12-2016, 17:16
806
jаvascript - мова браузера, тому не кожна задача потребує власних змінних масивах і об'єктах. У багатьох випадках цілком досить просто використовувати DOM (об'єктну модель документа). Але навіть в таких випадках правильне опис використовуваних даних завжди робить програму більш досконалою, зручною у використанні і подальшої доробки.
Javascript Array для збереження необмеженої кількості змінних
Слова мають значення, але, іменуючи в програмі те, що підлягає використанню і зміни, доречно обмежитись словами "дані" і "змінні". Ну а вже якими вони будуть - jаvascript Array, Object або просто Integer - залежить від завдання, точніше від конкретного місця в ній.


Логіка коду і даних

Програмісти звикли маніпулювати даними. Були і донині є змінні в широкому спектрі уявлень (рядка, символи, числа, дати), як правило, окремо позиціонувалися масиви (останні пару десятків років) об'єкти. [
У певний момент часу сувора типізація даних стала реліквією, і тепер в кожному сучасному мові це може міняти не тільки зміст, але і тип. Добре це чи погано, буде видно, але у суворої типізації є свої позитивні риси. Проте якщо так склалося, то чому б зовсім не "растипировать" весь процес? В семантичному плані, тобто за межами синтаксису, будь-яка змінна має значення. А воно при будь-якому положенні речей змінюється. Послідовність змін - вже кількість, що в термінах jаvascript - element array. Інакше кажучи, якщо програміст вирішив не надавати значення типу змінної і поклав на мову турботу про належному і своєчасному перетворення типів, то чому б взагалі не спростити: є просто дані, ну а вже які вони будуть в точці застосування - число, рядок, масив або об'єкт - це вже кодом вирішувати. Ще більш правильно: це повинно само по собі визначати, що можна з ним робити і як саме.


Прості дані і синтаксис

Прості змінні представлені різними типами. Перетворення типів виконуються автоматично, коли в цьому виникає необхідність.
В даному прикладі описана проста змінна s, в якій буде формуватися результат роботи з jаvascript Array aCheck. Змінна i описана безпосередньо в циклі роботи з aCheck. Тут елементи масиву створюються за допомогою конструкції jаvascript Array push) представляють собою три значення різного типу. Перший цикл виводить рядок s назви типів, другий - власне значення. Перетворення типу виконується автоматично.
]

Про кількості елементів у масивах

В jаvascript Array не є асоціативним масивом. Доступ до елементів виконується за чисельним ключів, максимальну кількість елементів - 2 32 але експериментувати з граничними кількостями елементів не слід. Хороший алгоритм завжди має найближче кількість даних, а конструкція JavaSscript Array length введена в синтаксис зовсім не для контролю об'єму масиву в контексті його змісту. Значенням aCheck.length буде не завжди реальна кількість елементів. В jаvascript Array може містити стільки й того, що туди було відправлено, але щоб дізнатися, скільки саме, часом доводиться потрудитися.
У цьому прикладі, вираз aCheck[5]збільшує масив до шести елементів. Плекати надії, що функція length дасть значення 4 не виправдано.

Асоціативні масиви

Формально jаvascriptt Array можуть бути тільки звичайними, тобто доступ до елементів здійснюється за числовими індексами. Проте в реальності можна використовувати асоціативні ідеї.
Дуже проста і буденна задача сортування рядків таблиці по колонках може бути вирішена за допомогою асоціативного масиву. Точка в кружечку біля імені стовпця означає відсутність сортування, стрілка вгору - за спаданням, стрілка вниз - за зростанням. Клік на колонку змінює напрямок (варіант реалізації на jаvascript: Sort Array).
У цьому прикладі, у масиві cSortCols формуються напрями сортування по кожній колонці (S, C, W, ). Значення напрямів тільки u, d. В конструкції for in всі зшивається в один рядок (код колонки, і напрямок сортування). Цей цикл переглядає всі елементи масиву, і використовувати функцію jаvascript Array length немає необхідності.

Створення і сортування масиву на jаvascript

Гарна практика - писати 'var xMass =[];' або 'var yArr = {};'. У першому випадку буде визначено звичайний масив, у другому випадку - асоціативний. Використовувати варіант jаvascript New Array() можна, але зазвичай ця конструкція використовується для інших цілей, в основному для роботи з об'єктами. Створений масив можна відразу заповнити змінними, але, як правило, актуально заповнення і маніпулювання масивом в динаміці, в ході виконання програми. При необхідності сортування можна використовувати конструкцію jаvascript Sort Array, яка не відрізняється гнучкістю, але дозволяє керувати процесом за допомогою власної функції. Виклик: arr.sort() призводить до сортування у порядку слідування символів таблиці ASCII. Зворотна функція - перестановки елементів: arr.reverse(). Ця функція змінює порядок елементів масиву на зворотний. В обох випадках слово arr позначає масив. У першому випадку допускається використання власної функції сортування, тобто виклик arr.sort(myfunc(a,b)) приведе до виклику власної функції myfuct, яка повинна видати результат в залежності від даних: a і b. Якщо перше менше другого, то -1 якщо навпаки, то-1 а якщо a = b, то 0. Тут критерій порівняння визначається програмістом в функції myfunc.

Ідея активного елемента

Функція, що викликається в процесі сортування, може виконувати різні дії. З точки зору конструкції, в якій застосовується, вона не зобов'язана реагувати на вхідні параметри, а її результат - не тільки три числа -1 1 і 0. Будучи застосованою в масиві циклічно до кожного елементу, вона може перебудувати масив. Якщо уявити, що масив - це певний сенс, певна структура даних, то jаvascript Array перетворюється в змінну з змінюваним змістом. Якщо взяти за основу використання першого або останнього елемента масиву в якості його змісту, виконання функції sort може перетворити масив так, що першим/останнім стане інший елемент, як потрібно за умовами завдання. Така ідея може дозволити перебудувати алгоритм рішення таким чином, зокрема, що відпаде потреба у використанні конструкцій if () {} else {} switch () {case"; case"; }. Маніпулюючи вмістом масиву, можна переміщати елементи всередині нього, змінюючи тим самим зовнішню функціональність, яку можна отримувати через перший або останній елемент.

jаvascript Array: нелогічне використання

Всякий язик хороший тим, що дозволяє не тільки змінювати структуру і зміст даних, але і власне код. Ідея розглядати як змінну абстракцію, тобто спочатку не передбачаючи її типової статус, відкриває нові горизонти. Починаючись з абстракції, мінлива, масив або об'єкт дозволяють уявити процес обробки даних як функцію цих даних, причому в динаміці. Наприклад, читаючи текст, можна описати цей "текст", яке буде розбиватися на пропозиції - критерій "точка" (в контексті, тобто з урахуванням прийнятого синтаксису речень). Пропозиції будуть розбиватися на фрази (в контексті, кома і відповідний синтаксис). Далі слова і букви. Результат: можна працювати на рівні текстів, речень, слів. На кожному рівні можна створити функції "унікальності", що дозволить шукати подібне чи аналогічне. Можна створити функції застосування речень, фраз до інших даних.
Сучасне програмування давно не догма, але той факт, що створені за останні десятиліття синтаксичні конструкції і накопичений досвід відкривають непередбачені розробниками мов нові горизонти - ще належить відкрити і використовувати.
Цікаво по темі
Vulcan Runtime Libraries: що це таке?
Vulcan Runtime Libraries: що це таке?
У великого числа користувачів комп'ютерів, після інсталяції нових драйверів для відеокарти від Nvidia, в меню Пуск з'являється незрозумілий ярлик з
JavaScript: switch case - вибір варіантів
JavaScript: switch case - вибір варіантів
Різноманіття варіантів може бути реалізовано різними способами. Конструкція switch - простий і ефективний спосіб виконати різні дії в залежності від
Java Array. Масиви в Java. Java для початківців
Java Array. Масиви в Java. Java для початківців
Для роботи з великою кількістю значень в Java, як у більшості сучасних високорівневих мов програмування, є такий потужний інструмент, як масиви.
JavaScript цикли: for, while, do-while
JavaScript цикли: for, while, do-while
Фундаментальні конструкції будь-якої мови - цикли. Але якщо оператор присвоювання поки ще не викликає сумнівів у доцільності, то далеко не всякий
JavaScript: приклади застосування
JavaScript: приклади застосування
jаvascript - сучасна мова програмування, без якого важко створити динамічний сайт, який привертає увагу. JS ідеально справляється з обробкою
Привабливі сторінки, або Про те, як у HTML зробити біжучий рядок
Привабливі сторінки, або Про те, як у HTML зробити біжучий рядок
Використання рухомих елементів - хороша ідея, коли потрібно пожвавити контент сайту і привернути увагу відвідувача. Засоби HTML і CSS дозволяють з