Основным отличием ассоциативных массивов от обычных является возможность обращения к элементу массива не по числовому индексу, а по индексу, представляющему собой строку.
m_Mass = new Array();
m_Mass["Один"] = 1;
m_Mass["Два"] = 2;
m_Mass["Три"] = 3;
document.write(m_Mass["Один"]); // 1
Как вывести все элементы массива? Ни один из методов класса Array не позволяет вывести элементы ассоциативного массива. Кстати, свойство length также не работает. По этой причине перебрать все элементы массива с помощью стандартного цикла for не получится.
Для этой цели существует специальный цикл for..in. Он имеет следующий формат:
for (<Переменная> in Экземпляр класса>)
{
<Тело цикла>
m_Mass = new Array();
m_Mass["Один"] = 1;
m_Mass["Два"] = 2;
m_Mass["Три"] = 3;
for (m_Name in m_Mass) {
// Переменной m_Name на каждой итерации присваивается
Ассоциативные массивы используются также для доступа к свойствам класса, вместо классической точки. Для получения длины строки ранее мы обращались к свойству length класса string следующим образом:
с_Str = new String("Hello, world");
document.write(с_Str.length); // 12
С помощью ассоциативных массивов обращение к свойству length будет выглядеть так:
с_Str = new String("Hello, world");
document.write(с_Str["length"]); // 12
3.15.6. Класс Math. Использование математических функций
Класс Math содержит математические константы и функции. Его использование не требует создания экземпляра класса.
Свойства:
E — е, основание натурального логарифма;
LN2 — натуральный логарифм 2;
LN10 — натуральный логарифм 10;
LOG2E — логарифм по основанию 2 от е;
LOG10E — десятичный логарифм от е;
PI — число Пи:
document.write(Math.PI); // 3.141592653589793
SQRT1_2 — квадратный корень из 0,5;
SQRT2 — квадратный корень из 2.
Методы:
abs() — абсолютное значение;
sin(), cos(), tan() — стандартные тригонометрические функции (синус, косинус, тангенс). Значение указывается в радианах;
asin(), acos(), atan() — обратные тригонометрические функции (арксинус, арккосинус, арктангенс). Значение возвращается в радианах;
ехр() — экспонента;
log() — натуральный логарифм;
pow(<Число>, <Степень>) —возведение<Числа> В <Степень>;
var m_Var=5;
document.write(Math.pow(m_Var, 2)); // 25 (5 в квадрате)
sqrt() — квадратный корень:
var m_Var=25;
document.write(Math.sqrt(m_Var)); // 5 (квадратный корень из 25)
round() — значение, округленное до ближайшего целого. Если первый знак после запятой от 0 до 4, то округление производится к меньшему по модулю целому, а в противном случае — к большему:
var m_Var1=2.499;
var m_Var2=2.5;
document.write(Math.round(m_Var1)); // округлено до 2
document.write(Math.round(m_Var2)); // округлено до 3
ceil() — значение, округленное до ближайшего большего целого:
var m_Var1=2.499;
var m_Var2=2.5;
document.write(Math.ceil(m_Var1)); // округлено до 3
document.write(Math.ceil(m_Var2)); // округлено до 3
floor() -— значение, округленное до ближайшего меньшего целого:
var m_Var1=2.499;
var m_Var2=2.5;
document.write(Math.floor(m_Var1)); // округлено до 2
document.write(Math.floor(m_Var2)); // округлено до 2
max(<Список чисел через запятую>) —максимальное значение из списка:
document.write(Math.max(3, 10, 6)); // 10
min(<Список чисел через запятую») —минимальное значение из списка:
document.write(Math.min(3, 10, 6)); // 3
random() — случайное число от 0 до 1:
document.write(Math.random()); // например, 0.9778613566886634
Для того чтобы получить случайное целое число от 0 до 9, нужно возвращаемое методом random() значение умножить на 9.9999, а затем округлить число до ближайшего меньшего целого при помощи метода floor():
var m_Var = Math.floor(Math.random()*9.9999);
document.write(m_Var);
Попробуйте несколько раз обновить Web-страницу. Число будем менять случайным образом в пределах от 0 до 9 включительно. Для чего это может пригодиться? Например, если есть четыре баннера 468x60, то их можно показывать случайным спосрбом.
Четыре баннера с именами banner0.gif, bannerl.gif, banner2.gif и ЬаппегЗ. должны быть расположены в одной папке с файлом, в котором находт исполняемый скрипт.
Названия файлов с баннерами можно сделать произвольными, добавив их в массив:
m_Mass = new Array("banner-red.gif", "banner-blue.jpeg",