![]() ![]() колонтитул в word 2007, 0000002111
Массивы - механизм управления массивом в JavaScriptМассив является по сути списком элементов. Каждый элемент массива может быть чем угодно, но обычно они связаны друг с другом. Если, например, необходимо отследить 30 студентов класса, то можно создать массив студентов:
var students = new Array(); students[0] = 'Sam'; students[1] = 'Joe'; students[2] = 'Sue'; students[3] = 'Beth';
var students = ['Sam', 'Joe', 'Sue', 'Beth']; Что можно теперь сделать с этим массивом студентов? Чтобы обратиться к любому элементу массива, необходимо знать его индекс. В первом примере можно видеть, что в скобках находятся числа (0-3). Это индексы. Если требуется узнать имя третьего студента, то надо будет написать "alert(students[2]); ". Почему 2, а не 3? Массивы в JavaScript начинают индексацию с 0, а не с 1. Поэтому первым элементом в нашем массиве будет students[0], вторым - students[1], сотым - students[99], и т.д. Для этого не существует никакой реальной причины, просто так устроен JavaScript и многие другие языки программирования. Некоторые другие языки используют в качестве первого индекса 1. Наиболее распространенной задачей при работе с массивами, помимо изменения его данных, является проверка его длины, обычно для того, чтобы можно было перебрать весь массив и выполнить некоторую задачу с каждым элементом.
var students = ['Sam', 'Joe', 'Sue', 'Beth']; var suffixes = ['1st', '2nd', '3rd', '4th']; for(var i=0; i<students.length; i++){ alert(suffixes[i]+' студент -- '+students[i]); } Прежде всего имеется массив столбцов. Каждый столбец будет в свою очередь содержать в себе массив строк. Этот массив создается точно таким же образом, как и массив students:
var spreadsheet = [ ['A1', 'B1', 'C1', 'D1'], ['A2', 'B2', 'C2', 'D2'], ['A3', 'B3', 'C3', 'D3'], ['A4', 'B4', 'C4', 'D4'] ]; Можно видеть, что здесь имеется 5 массивов. Четыре внутренних массива (или вложенных массива) содержатся в одном большом массиве, spreadsheet. Если потребуется узнать значение на пересечении второго столбца и третьей строки, то можно написать:
var col2 = spreadsheet[1]; alert(col2[2]); // или alert(spreadsheet[1][2]);
var students = ['Sam', 'Joe', 'Sue', 'Beth']; students[4] = 'Mike'; students[students.length] = 'Sarah'; students.push('Steve'); // теперь массив содержит 7 элементов: ['Sam', 'Joe', 'Sue', 'Beth', Не так часто, но иногда необходимо также удалить объект из массива. В этом случае задействуется функция " splice ", которая позволяет добавить или удалить любое количество элементов массива, но в данный момент мы собираемся использовать ее для удаления одного студента, Mike, который переехал в другой город:
var students = ['Sam', 'Joe', 'Sue', 'Beth', 'Mike', 'Sarah', 'Steve']; students.splice(4, 1);
['Sam', 'Joe', 'Sue', 'Beth', 'Sarah', 'Steve']; Можно написать небольшой простой сценарий, который позволит легко добавлять или удалять студентов:
var students = ['Sam', 'Joe', 'Sue', 'Beth']; function addStudent(name){ students.push(name); } function removeStudent(name){ for(var i=0; i<students.length; i++){ if(students[i].toLowerCase() == toLowerCase(name)){ students.splice(i, 1); break; } } } Добавить этого студента Удалить этого студента Студенты: Единственным новым моментом здесь является слово "break". break останавливает выполнение кода любого цикла, в котором находится: цикла for, цикла do или switch. Поэтому в данном случае, когда удаляемый студент найден, мы прерываем цикл for, так как выполнили свою задачу. Часто бывает необходимо преобразовать массив в строку или строку в массив. Имеется две функции, которые могут легко это сделать: join и split. Функция join получает массив и преобразует его в строку с помощью разделителя, заданного в join. Функция split действует в обратном направлении и делает массив из строки, определяя новый элемент c помощью разделителя, заданного в split:
var myString = 'apples are good for your health'; var myArray = myString.split('a'); // строка myString разбивается на элементы на каждом найденном символе 'a'. alert(myArray.join(', ')); // преобразуем myArray снова в строку с помощью запятой, // так что можно видеть каждый элемент alert(myArray.join('a')); // теперь преобразуем myArray снова в строку с помощью символа 'a', // так что снова получается исходная строка. Еще две полезные функции для работы с массивами - "pop" и "shift". Функция "pop"
students.length = 0 Все использованные до сих пор массивы называются «индексными массивами», так как каждый элемент массива имеет индекс, который необходимо использовать для доступа к элементу. Существуют также «ассоциативные массивы», в которых каждый элемент массива ассоциирован с именем в противоположность индексу:
var grades = []; grades['Sam'] = 90; grades['Joe'] = 85; grades['Sue'] = 94; grades['Beth'] = 82;
for(student in grades){ alert("Оценка " + student + "будет: " + grades[student]); } Последнее замечание о массивах состоит в том, что в действительности можно объединять ассоциативные и индексные массивы, хотя это обычно не рекомендуется, так как может вызывать некоторые проблемы. При правильном использовании, однако, можно с успехом это применять.
var students = ['Sam', 'Joe', 'Sue', 'Beth']; students['Sam'] = 90; students['Joe'] = 85; students['Sue'] = 94; students['Beth'] = 82; alert('Всего имеется '+(students.length)+' студентов: '+ Прежде всего, необходимо понять, что с точки зрения браузера страница HTML является точно тем же, что и документ XML. Если читатель имеет опыт работы с XML, то сможет понять обработку DOM достаточно легко. Но в любом случае это в действительности не сложно. Существует прекрасный справочник по адресу (http://www.devguru.com/technologies/xml_dom/index.asp), который подробно описывает каждый метод обработки DOM, но к концу этой лекции читатель в основном поймет, как это работает.
Необходимо также отметить атрибуты в некоторых из этих
тегов. Например, тег TABLE (<table border="0" cellspacing="2" cellpadding="5">)
имеет 3 заданых атрибута: border, cellspacing и cellpadding. При изменении DOM
часто бывает необходимо изменить эти атрибуты. Можно, например, изменить атрибут
SRC тега IMG, чтобы изменить выводимое изображение. Это часто делают, например,
для создания эффекта изменения изображения, на которое направлен указатель
(rollover). колонтитулы в word 2007, 000000211111
Рекомендуем в повседневной деятельности:
![]() ![]() |