русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы


Дата добавления: 2013-12-23; просмотров: 1797; Нарушение авторских прав


Массивы делятся на встроенные (document.links[], document.images[] и т.п. - их еще называют коллекциями ) и определяемые пользователем (автором документа). Коллекции будут обсуждаться в следующей лекции. Здесь же мы подробно остановимся на массивах, определяемых пользователем. Для массивов определено несколько методов:join(), reverse(), sort() и другие, а также свойство length, которое позволяет получить число элементов массива.

Для определения массива пользователя существует специальный конструкторArray. Если ему передается единственный аргумент, причем целое неотрицательное число, то создается незаполненный массив соответствующей длины. Если же передается один аргумент, не являющийся числом, либо более одного аргумента, то создается массив, заполненный этими элементами:

a = new Array();// пустой массив (длины 0) b = new Array(10);// массив длины 10 c = new Array(10,'Привет');// массив из двух элементов: числа и строки d = [5, 'Тест', 2.71828, 'Число e'];// краткий способ создать массив из 4 элементов

Элементы массива нумеруются с нуля. Поэтому в последнем примере значениеd[0] равно 5, а значение d[1] равно 'Тест'. Как видим, массив может состоять из разнородных элементов. Массивы не могут быть многомерными, однако ничто не мешает завести массив, элементами которого будут тоже массивы.

Метод join()

Метод join() позволяет объединить элементы массива в одну строку. Он является обратным к методу split(), который разрезает объект типа String на куски и составляет из них массив. Кстати, метод split() демонстрирует тот факт, что массив можно получить и без конструктора массива.

Рассмотрим пример преобразования локального URL в глобальный URL, где в качестве адреса сервера будет выступать www.intuit.ru. Пусть в переменнойlocalURL хранится локальный URL некоторого файла:



localURL = "file:///C:/department/internet/js/2/2.html"

Разрежем строку в местах вхождения комбинации символов " :/ ", выполнив команду: b = localURL.split(':/'). Получим массив:

b[0] = "file";b[1] = "//C";b[2] = "department/internet/js/2/2.html";

Заменяем 0-й и 1-й элементы на требуемые:

b[0] = "http:";b[1] = "/www.intuit.ru";

Наконец, склеиваем полученный массив, вставляя косую черту в местах склейки: globalURL = b.join("/"). В итоге мы получаем требуемый глобальный URL - значение globalURL будет равно:http://www.intuit.ru/department/internet/js/2/2.html.

Метод reverse()

Метод reverse() применяется для изменения порядка элементов массива на противоположный. Предположим, массив упорядочен следующим образом:

a = new Array('мать','видит','дочь');

Упорядочим его в обратном порядке, вызвав метод a.reverse(). Тогда новый массив a будет содержать:

a[0]='дочь';a[1]='видит';a[2]='мать';

Метод sort()

Метод sort() интерпретирует элементы массива как строковые литералы и сортирует массив в алфавитном (т.н. лексикографическом) порядке. Обратите внимание: метод sort() меняет массив. В предыдущем примере, применивa.sort(), мы получим на выходе:

a[0]='видит';a[1]='дочь';a[2]='мать';

Однако, это неудобно, если требуется отсортировать числа, поскольку согласно алфавитному порядку 40 идет раньше чем 5. Для этих целей у метода sort()имеется необязательный аргумент, являющийся именем функции, согласно которой требуется отсортировать массив, т.е. в этом случае вызов метода имеет вид: a.sort(myfunction). Эта функция должна удовлетворять определенным требованиям:

  • у нее должно быть ровно два аргумента;
  • функция должна возвращать число;
  • если первый аргумент функции должен считаться меньшим (большим, равным) чем второй аргумент, то функция должна возвратить отрицательное (положительное, ноль) значение.

Например, если нам требуется сортировать числа, то мы можем описать следующую функцию:

function compar(a,b){ if(a < b) return -1; if(a > b) return 1; if(a == b) return 0;}

Теперь, если у нас есть массив b = new Array(10,6,300,25,18);, то можно сравнить результаты сортировки без аргумента и с функцией compar в качестве аргумента:

document.write("Алфавитный порядок:<BR>");document.write(b.sort());document.write("<BR>Числовой порядок:<BR>");document.write(b.sort(compar));

В результате выполнения этого кода получим следующее:

Алфавитный порядок:10,18,25,300,6Числовой порядок:6,10,18,25,300

Обратите внимание: метод sort() интерпретирует элементы массива как строки (и производит лексикографическую сортировку), но не преобразует их в строки. Если в массиве были числа, то они числами и останутся. В этом легко убедиться, если в конце последнего примера выполнить командуdocument.write(b[3]+1): результат будет 26 (т.е. 25+1 ), а не 251 (т.е. "25"+1).



<== предыдущая лекция | следующая лекция ==>
Переменные | Continue


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.