Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JavaScript_основы.doc
Скачиваний:
9
Добавлен:
04.11.2018
Размер:
322.05 Кб
Скачать

Многомерные массивы

Многомерные массивы можно создать перечислением:

m_Mass = new Array(new Array("Один", "Два", "Три"), new Array("Четыре", "Пять", "Шесть"));

document.write(m_Mass[0][1]); // "Два"

или поэлементно:

m_Mass = new Array();

m_Mass[0] = new Array();

m_Mass[1] = new Array();

m_Mass[0][0] = "Один";

m_Mass[0][1] = "Два";

m_Mass[0][2] = "Три";

m_Mass[1][0] = "Четыре";

m_Mass[1][1] = "Пять";

m_Mass[1][2] = "Шесть";

document.write(m_Mass[1][2]); // "Шесть"

Обращение к элементу многомерного массива осуществляется с помощью двух индексов:

var m_Str = m_Mass[1][2];

Ассоциативные массивы. Перебор ассоциативных массивов

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

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 на каждой итерации присваивается

// строка-индекс ассоциативного массива

document.write(m_Name + " = " + m_Mass[m_Name] + "<BR>");

}

Ассоциативные массивы используются также для доступа к свойствам класса, вместо классической точки. Для получения длины строки ранее мы обращались к свойству 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, то их можно показывать случайным спосрбом.

var m_Var = Math.floor(Math.random()*3.9999);

document.write("<IMG src='banner" + m_Var + ".gif' width='480' height='60'>");

Четыре баннера с именами banner0.gif, bannerl.gif, banner2.gif и ЬаппегЗ. должны быть расположены в одной папке с файлом, в котором находт исполняемый скрипт.

Названия файлов с баннерами можно сделать произвольными, добавив их в массив:

m_Mass = new Array("banner-red.gif", "banner-blue.jpeg",

"banner-gray.gif", "banner-white.png");

var m_Var = Math.floor(Math.random()*3.9999);

document.write("<IMG src='" + m_Mass[m_Var]);

document.write("' width='480' height='60'>");

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]