1. JavaScript об'єкти
Javascript - об'єктно-орієнтована мова. Це означає, що з деякими типами даних можна працювати як з об'єктами, що дозволяє застосовувати до них додаткові функції для роботи з об'єктами. Наприклад, з рядками можна працювати і як зі звичайним типом даних і як з об'єктами:
// звичайна строкова змінна myStr:
var myStr = "Текст";
// створення строкового об'єкта myStr:
var myStr = new String();
-
Object (об'єкти)
-
Number (обробка чисел)
-
String (обробка рядків)
-
Array (масиви)
-
Math (математичні формули, функції і константи)
-
Date (робота з датами і часом)
-
RegExp
-
Global (його властивості Infinity, NaN, undefined)
-
Function
З усіма цими об'єктами ми познайомимося пізніше, з деякими з них ми частково вже знайомі.
Object - об'єкт, який міститься у всіх інших об'єктах і забезпечує їх загальну функціональність.
Об'єкт function - функції є об'єктами першого класу, тобто можуть присвоюватися змінним, виступати аргументами інших функцій і бути результатом функцій
Оголошення нових об'єктів відбувається однаково, незалежно від об'єкта (використовується службове слово new):
var arr = new Object();
var str = new String();
var arr = new Array();
Як видно з прикладу, в javascript оголошення масиву відбувається точно так само, як і у інших об'єктів.
2. JavaScript масиви, тип даних Array
Тепер докладніше розглянемо об'єкт масив.
Масив - упорядкований набір даних.
Доступ до елементів масиву здійснюється за допомогою порядкового номера - індексу. Таким чином, масив - об'єкт, який представляє собою проіндексований набір елементів.
Приклад: Створити масив arr. Присвоїти значення трьох елементів створеного масиву. За допомогою діалогового вікна вивести значення елемента масиву з індексом 2. Вивести кількість елементів масиву.
Рішення:
var arr = new Array();
arr[0] = "element1";
arr[1] = "element2";
arr[2] = "element3";
alert(arr[2]);
alert("Число елементів" + arr.length);
У javascript довжина масиву - властивість .
3. Javascript створення масиву
Створення елементів масиву можливо декількома способами:
-
var earth = new Array(4); /* масив з 4-х елементів*/
earth[0] = "Планета";
earth[1] = "24 часа";
earth[2] = 6378;
earth[3] = 365.25; -
var earth = new Array("Планета", "24 часа", 6378, 365.25);
-
var earth = new Array(); // порожній масив
earth.xtype = "Планета";
earth.xday = "24 часа";
earth.radius = 6378;
earth.period = 365.25; -
var country = ["Україна", "Білорусія", "Казахстан"];
4. Javascript: робота з масивами
Звернення або доступ до елементів масиву в javaScript відбувається так:
var mas=new Array(1,25,'Привіт');
mas[0]='Бувай';
mas[1]=35;
Пояснення: При ініціалізації масиву елемент mas[0] дорівнював 1. Потім ми змінили його значення на 'Бувай'. Значення елемента масиву mas[1] було змінено з 25 на 35.
Вивід елементів масиву
При виведенні значень масиву в документ за допомогою методу , його елементи виводяться через кому:
var mas=new Array(1,25,'Привіт');
document.write(mas)
Результат:
1,25,Привіт
-
Розглянемо, як здійснюється в javascript висновок масиву з використанням звичайного циклу :
var mas=new Array(1,25,'Привіт');
function showElement(){
for(i=0;i<3;i++)
document.writeln(mas[i]);
}
showElement();Результат:
1 25 Привіт
-
Використання циклу для перебору елементів масиву:
var mas=new Array(1,25,'Привіт');
function showElement(){
for(var i in mas){
document.writeln(mas[i]);
}
}
showElement();Результат:
1 25 Привіт
Завдання array 5_1. Створити два масиви: - з назвою країн, і - з населенням цих країн. Вивести назву країни і її населення (використовувати метод ).
Коментарі до виконання:
-
Вивід елементів масиву оформити у вигляді функції.
-
Спочатку виконати завдання за допомогою циклу з лічильником, потім - за допомогою циклу .
Завдання array 5_2. Що виведе на екран наступний фрагмент коду?
var e = 1024;
var table = [e, e + 1, e + 2, e + 3];
document.write(table);
Приклад: Що виведе на екран наступний фрагмент коду?
var arr = [1, 2, 3];
arr[5] = 5;
for(var i = 0; i < arr.length; i++) {
document.write(arr[i] + "<br/>");
}
Пояснення: У прикладі в рядку відбувається розширення масиву - в 5-й індекс заноситься значення . Цикл заповнює елементи типом , елементи які ми не використали - вони залишаються порожніми.
Видалення елементів масиву
У javascript видалити елемент масиву можна за допомогою оператора :
var myColors = new Array("red", "green", "blue");
delete myColors[1];
alert(myColors); // red,,blue
Завдання array 5_3. Створити масив з трьох елементів, значення елементів запитувати у користувача. Видалити другий за рахунком елемент, після чого вивести елементи масиву на екран, кожен елемент з нового рядка
5. Властивості масиву (Array) в javaScript
Масив - зумовлений об'єкт. Доступ і звернення до елементів масиву здійснюється за допомогою точкової нотації (через символ ««):
Назва_об'єктавластивість_об'єкта
Назва_об'єктаметод_об'єктапараметри
Приклад:
mas.length // звернення до властивості length
mas.sort() // виклик методу sort
Приклад: Вивести елементи масиву на екран, в якості кінцевого значення лічильника циклу використовувати властивість масивів
Рішення:
for (var i = 0; i<arr.length;i++){
alert(arr[i]);
}
alert(arr.length);
Пошук елемента в масиві
У javascript пошук елемента в масиві можна здійснити через функцію:
var arr = new Array();
arr[0] = "element1";
arr[1] = "element2";
arr[2] = "element3";
function findValue(theValue){
for (var i = 0; i<arr.length;i++){
if(arr[i] == theValue)
break; // якщо знайшли - вихід з циклу
}
if (i<arr.length) // якщо не знайшли, то i=arr.length
return i // якщо знайшли - повертаємо індекс
else
return 0; // якщо не знайшли - повертаємо 0
}
var elem=findValue("element2");
if (elem) alert ("елемент знайдений, його індекс ="+elem)
else alert("елемент не знайдений");
Пояснення: У прикладі функція, організована для пошуку елемента масиву, має один аргумент () - значення шуканого елемента масиву. У разі знаходження елемента функція повертає індекс знайденого елементу, якщо елемент не знайдений - функція поверне .
Завдання array 5_4. Створити масив, елементами якого є назви днів тижня. Виводити номер дня тижня (номер елемента масиву), що містить введенy користувачем назву дня тижня (використовувати функцію з параметром, яка повертає значення номера).
6. Методи масиву (Array) в javaScript
Розглянемо деякі javascript методи масиву.
-
Часто використовуваним методом в javascript array є .
Метод javaScript - конкатенація масивів, об'єднує два масиви в третій масив, тобто формує і повертає об'єднаний масив, що містить всі елементи вихідного масиву і значення всіх аргументів, переданих методуім'я_масиву1concatмасив2Розглянемо приклад використання методу concat:
var a1= new Array(1, 2, "Звезда");
var а2 = new Array("a", "б", "в", "г");
var аЗ = a1.concat(a2);
/* результат - масив з елементами: 1, 2, "Зірка", "а", "б", "в", "г" */Завдання array 5_5. Доповніть код згідно із завданням:
В змінну привласнити повертане значення методу , передавши в цей метод два значення
і . Що буде виведено на екран ?:var a = [1, 2, 3];
a = ...
document.write(a); -
Метод javaScript - створює рядок з елементів масиву з вказаним роздільником між ними (перетворює всі елементи масиву в рядки і об'єднує їх через вказаний роздільник)
ім'я_масивуjoinрядок
Приклад використання методу join:
var а = new array(1, 2, "Звезда")
a.join(",") // значення - рядок "1,2, Зірка"
var а = new array(1, 2, "Звезда")
a.join(" ") // значення - рядок "1 2 Зірка"Завдання array 5_6. Доповніть код, згідно із завданням:
У рядку оголошення змінної привласнити значення: на масиві викликати метод , в який передати аргумент (тег ) і вивести на екран значення змінноїvar arr = ["Edward", "Andrey", "Chris"]
var res = ...
document.write(res); -
Метод javaScript - видаляє перший елемент масиву і повертає результуючий масив, зміщуючи всі наступні елементи на одну позицію вліво
ім'я_масивуshift
Приклад використання методу shift:
var x = ["a", "b", "c", "d"];
x.shift();
document.write(x);
// виведе на екран оглядача рядок b, c, d. -
Метод javaScript - видаляє останній елемент масиву і повертає результуючий масив
ім'я_масивуpop
Приклад використання методу pop:
var x = ["a", "b", "c", "d"];
x.pop();
document.write(x);
// виведе на екран оглядача рядок a, b, c.Завдання array 5_7. Доповніть код згідно з інструкцією:
Присвоїти значення методу в змінну . Вивести окремо результуючий масив і окремо його віддалений елемент (значення змінної ):var arr = ["January", "February", "March", "April", "May", "June"];
var len = ...
document.write(arr.join(" ")+"</br>");
document.write(len); -
Метод javaScript - додає до масиву вказане значення в якості першого елемента
ім'я_масивуunshiftзначення
Приклад використання методу unshift:
var x = ["a", "b", "c", "d"];
document.write(x.unshift("e"));
// виведе на екран оглядача число 5 -
Метод javascript - додає до масиву вказане значення в якості останнього елемента і повертає нову довжину масиву
ім'я_масивуpushзначення
Приклад використання методу push:
var x = ["a", "b", "c", "d"];
document.write(x.push("e"));
// виведе на екран оглядача число 5 -
Метод javaScript - змінює порядок проходження елементів масиву на протилежний
ім'я_масивуreverse
Приклад використання методу reverse:
var x = new Array();
x[0] = 0; x[2] = 2; x[4] = 4;
document.write(x.reverse());
// виведе на екран оглядача рядок 4,,2,,0Завдання array 5_8. Що виведе на екран наступний фрагмент коду?
var a = new Array(11, 22, 33, 44, 55, 66, 77);
a.reverse();
document.write(a.join("<br/>")); -
Метод javascript - створює масив з елементів вихідного масиву з індексами зазначеного діапазону (повертає підмасив зазначеного масиву).
ім'я_масивуslice індекс1 індекс2
Приклад:
var a = new Array(1, 2, 'Звезда' , 'а' , 'b');
alert(a.slice(1,3));
// масив з елементами: 2, "Зірка"
alert(a.slice(2));
// масив з елементами: "Зірка", "а", "b"Завдання array 5_9. Доповніть код згідно із завданням:
Присвоїти змінній значення що повертається методу , який буде повертати перших 3 значення з масиву:var a = [1, 2, 3, 4, 5, 6, 7];
var t = ...
document.write(t); -
Метод javaScript - сортує (впорядковує) елементи масиву (якщо рядкові елементи, то спочатку відбудеться сортування тексту, потім сортування за алфавітом)
ім'я_масивуsort
Приклад використання методу sotr:
var arr = [1, 16, 2];
arr.sort();
document.write(arr.join("<p>"));
/*
Выведет на экран:
1
16
2
*/ -
Метод javaScript - видаляє з масиву кілька елементів і повертає масив з видалених елементів або замінює значення елементів. Тобто цей метод використовується для вставки і видалення елементів з масиву.
ім'я_масивуspliceіндекс кількість
Приклад використання методу splice:
var a = new Array('Ivan','Max','Peter',12,5);
var x = a.splice(1,3);
document.write(x+"<br>"); // Max,Peter,12
document.write(a); // Ivan,5Завдання array 5_10. Доповніть код згідно із завданням:
В змінну присвоїти значення методу , який повинен видалити числа , , з масиву:var a = [1, 2, 3, 4, 5, 6, 7];
var d = ...
document.write(a); -
, - перетворять вміст масиву в символьний рядок
Завдання array 5_11. Дан масив з чисел: 1, 2, 3, 4, 5. Роздрукувати масив в зворотному порядку (5, 4, 3, 2, 1), використовуючи функцію javaScript
Завдання array 5_12. Дан масив з елементів: 'c', 5, 2, 'b', 3, 1, 4, 'a'. Роздрукувати масив, попередньо відсортувавши його по зростанню (1, 2, 3, 4, 5, a, b, c)
Завдання array 5_13. Дан масив з елементів: 1, 2, 3, 4, 5. Роздрукувати вихідний масив і масив, що вийшов з елементів вихідного масиву, з роздільником «» (метод javaScript - 1 + 2 + 3 + 4 + 5)
7. Асоціативний масив в javaScript
Асоціативний масив - це абстрактний тип даних, по суті, аналог двовимірного масиву в javascript, що дозволяє зберігати пари виду «(ключ, значення)». Тобто асоціативні масиви дозволяють замість індексів використовувати строкові значення.
На жаль, в javascript не передбачені методи для роботи з асоціативними масивами. З цієї причини вони використовуються досить рідко. Однак, їх зручно використовувати для зберігання даних, тому що їх використання полегшує запам'ятовування елементів.
Приклад створення асоціативного масиву:
var pupil = { name: "Andrey", group: "1" };
Інший приклад:
var m_list = new Object();
m_list["fat"] = "Повний";
m_list["small"] = "Маленький";
m_list["name"] = "Іван";
for (var x in m_list) // виведемо на екран всі елементи
document.write(m_list[x] + "<br>");
Завдання array 5_14. Виправити помилку (помилки) у фрагменті коду для коректної роботи:
var laptop = ( cpu: "Core i7", ram: "4 GB", screen: "19" );
var Key = prompt("Введіть параметр який вас цікавить (ram, cpu, screen)");
var value = laptop[key];
document.write(value);
8. Багатовимірні масиви
Так як масиви JavaScript можуть в якості елементів використовувати інші масиви, то чому б цю можливість не використовувати для створення багатовимірних масивів. Для доступу до елементів в масиві масивів досить використовувати квадратні дужки двічі.
var matrica = [
[5, 5, 5],
[1, 5, 1],
[2, 2, 2]
];
document.write(matrica[1][1]); // обраний елемент по центру (5)
Завдання array 5_15. Дана матриця 5 х 5. Вивести елементи матриці, що належать інтервалу [-5; 7].
При вихідній матриці:
[4, 11, 5, 11, 12],
[12, 22, 12, -3, -10]
[22, 22, 32, -33, -12]
[2, 22, 12, -12, -10]
Результат повинен бути: