// добавить эдемент последним
myArray[myArray.length] = 'последнее значение'
Обратите внимание, что значение Array.length на единицу больше номера последнего элемента массива, т.к. нумерация в массиве начинается с нуля, а свойство length показывает общее количество элементов.
Класс Array так же содержит ряд методов, существенно упрощающих некоторые рутинные операции с массивами:
Array.join() | Получение списка элементов массива в виде одной строки без разделителей. |
Array.join(разделитель) | Получение списка элементов массива в виде одной строки, причем элементы массива разделены строкой "разделитель" |
Array.reverse() | Изменение порядка сортировки массива. Этот метод "переворачитвает" массив: первый элемент становится последним и наоборот. |
Array.sort() | Сортировка массива по алфавиту. Если массив содержит числовые данные, то при сортировке используются их строковые представления. |
Array.sort(функция_сортировки) | Сортировка массива по пользовательскому критерию, который задаётся с помощью собственной функции сортировки: |
Рассмотрим небольшой пример:
|
|
// функция сортировки массива
Function sortByLength(a, b)
{
if(a.length > b.length) return 1;
Else
if(a.length = b.length) return 0;
else return -1;
}
// инициализация массива
var myArray = new Array()
myArray[0] = 'Ярославль'
myArray[1] = 'Ямал'
myArray[2] = 'Ставрополь'
myArray[3] = 'Омск'
myArray[4] = 'Анапа'
alert('исходный массив:\n\n' + myArray.join('\n'))
// сортируем по алфавиту
myArray.sort();
alert('сортированный по алфавиту:\n\n' + myArray.join('\n'))
// сортируем в обратном порядке
myArray.reverse();
alert('перевёрнутый:\n\n' + myArray.join('\n'))
// сортируем по длине с помощью собственной функции
myArray.sort(sortByLength);
alert('сортированный по длине:\n\n' + myArray.join('\n'))
Как видите, пользоваться методами массива очень просто. Самое интересное в этом примере - функция сортировки. Она должна всегда иметь два параметра и возвращать число. Порядок сортировки определяется знаком возвращаемого числа. Если число отрицательное - первый аргумент должен в массиве располагаться раньше второго, если положительное - позже. Если элементы равны, то обычно возвращается ноль, а порядок элементов не изменяется.
В JavaScript1.1 и выше реализованы дополнительные свойства и методы массивов, расширяющие возможности для программистов. Например, добавлены методы concat() и slice(), позволяющие собъединить массивы и получить кусок массива соответственно. К сожалению, ещё не все браузеры поддерживают JavaScript1.1 и JavaScript1.2, поэтому при разработке кроссбраузерных скриптов использовать новые нестандартные свойства и методы надо очень аккуратно.
Таким образом, массивы - это один из наиболее гибких и удобных механизмов JavaScript, т.к. позволяет с лёгкостью манипулировать даже относительно большими объемами данных. Массивы надо использовать везде, где заранее неизвестно количество хранимых данных и их тип.
|
|
С другой стороны, увлекаться и делать массивы из одного-двух элементов тоже не стоит. Перед созданием массива подумайте, а точно ли он нужен? Как показывает практика - в половине случаев проще обойтись двумя лишними переменными.
Циклы
Все языки программирования имеют дело с циклами. В JavaScript бывают циклы двух видов: While и For. Циклы While — когда вы не знаете точно, сколько раз нужно повторять команду.
Синтаксис таков:
for (начальное значение; конечное; шаг) {S}
где S последовательность операторов.
Теперь while:
while (логическое выражение) {S}
последовательность операторов S будет повторятся пока истинно логичиское выражение
Пример:
Сначала для for
<HTML>
<HEAD>
</HEAD>
<BODY>
<H3>Посчитаем до пяти</H3>
<script language="JavaScript">
for (i=1; i<=5; i++) {
document.write(i + "<BR>");
}
</SCRIPT>
Вот и все.
</BODY>
</HTML>
Чаще всего, циклы применяют при редактировании массивов. Дело в том, что просто так нельзя даже вывести на экран массив, не то что его по элементам обработать. Как раз для таких действий и применяется цикл for, при этом, если необходимо обработать массив и вывести его на экран, то его синтаксис будет таким:
text = new Array();
text = ["красный", "синий", "зеленый"];
textOut = new Array();
for(var i=0; i<text.length; i++)
{
textTemp = "<font color = red size = 7>" + text[i] + "</font>";
textOut[textOut.length] = textTemp; // добавляем записи в массив
}
document.writeln(textOut.join(' '));
Как видно из примера, можно в процессе вывода на экран содержимого массива обработать его.
Теперь для while
<HTML>
<HEAD>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
loops=3;
num=1;
while (num <= loops) {
document.write("Добрый ")
num=num+1
}
document.write("Вечер!")
</SCRIPT>
</BODY>
</HTML>
Результат
Для for:
Посчитаем до пяти
Теперь для while:
Добрый Добрый Добрый Вечер!