1. Масиви з числовими індексами
Масив (Array) – різновид об’єкта,
призначений для зберігання багатьох
величин в одній змінній.
Приклади створення:
var arr = [];
var fruits = ["Яблуко", "Апельсин",
"Слива"];
2. Доступ до елементів масиву:
var fruits = ["Яблуко", "Апельсин",
"Слива"];
alert( fruits[0] ); // Яблуко
alert( fruits[1] ); // Апельсин
alert( fruits[2] ); // Слива
Заміну і додавання можна виконувати так:
fruits[2] = 'Груша'; // ["Яблуко",
"Апельсин", "Груша"]
fruits[3] = 'Лимон'; // ["Яблуко",
"Апельсин", "Груша", "Лимон"]
3. Число елементів масиву виводиться властивістю
length.
var fruits = ["Яблуко", "Апельсин", "Слива"];
alert( fruits.length ); // 3
alert виводить всі елементи масиву через кому.
Елементом масиву може бути також інший
масив чи будь-який об’єкт.
var harvest = ["овочі", "зернові",
fruits];
alert( harvest ); //
овочі,зернові,Яблуко,Апельсин,Слива
4. Задача 41
З масива fruits невідомої довжини отримайте
останній елемент.
Поміняйте його значення на значення
елемента з номером 0.
6. Методи pop/push, shift/unshift
pop – видаляє останній елемент з масиву
і повертає його:
var fruits = ["Яблуко", "Апельсин", "Слива"];
alert( fruits.pop() ); // видалили "Слива"
alert( fruits ); // Яблуко, Апельсин
push – додає елемент в кінець масиву.
var fruits = ["Яблуко", "Апельсин"];
fruits.push("Груша");
alert( fruits ); // Яблуко, Апельсин, Груша
7. shift – видаляє перший елемент і
повертає його:
var fruits = ["Яблуко", "Апельсин", "Груша"];
alert( fruits.shift() );
alert( fruits ); // Апельсин, Груша
unshift – додає елемент на початок:
var fruits = ["Апельсин", "Груша"];
fruits.unshift('Яблуко');
alert( fruits ); // Яблуко, Апельсин, Груша
8. push і unshift можуть додавати зразу
кілька елементів.
shift і unshift повільніші за pop і push.
Масив з “дірами”:
var a = [];
a[0] = 0;
a[5] = 5;
alert( a ); // 0,,,,,5
alert( a.length ); // 6
9. Задача 42
1. Створіть масив cars з елементами "Volvo",
"BMW".
2. Додайте в кінець значення "Mercedes".
3. Замініть передостаннє значення на "Toyota".
Код такої операції повинен працювати з
масивом будь-якої довжини.
4. Видаліть перше значення масиву і виведіть
його alert’ом.
5. Додайте на початок значення "Nissan" і
"Renault".
11. Цикл по елементах:
var arr = ["Яблуко", "Апельсин", "Груша"];
for (var i = 0; i < arr.length; i++) {
alert( arr[i] );
}
Можна й for..in, але він значно
повільніший.
for (var key in arr) {
alert( arr[key] ); // Яблуко, Апельсин, Груша
}
12. Задача 43
Напишіть функцію filterRange(arr, a, b), яка
отримує масив чисел arr і повертає новий
масив, який містить тільки числа з arr в
диапазоні від a до b. Тобто перевірка має
вигляд a ≤ arr[i] ≤ b. Функція не повинна
міняти arr. Наприклад:
var arr = [5, 4, 3, 8, 0];
var filtered = filterRange(arr, 3, 5);
// тепер filtered = [5, 4, 3]
// arr не змінився
Підказка: створіть тимчасовий порожній масив
results і заповнюйте відфільтрованими даними.
13. Розв’язок
function filterRange(arr, a, b) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= a && arr[i] <= b) {
result.push(arr[i]);
}
}
return result;
}
var arr = [5, 4, 3, 8, 0];
var filtered = filterRange(arr, 3, 5);
alert( filtered );
14. Властивістю length можна керувати довжиною
масиву:
var arr = [1, 2, 3, 4, 5];
arr.length = 2; // вкоротили до 2
елементів
alert( arr ); // [1, 2]
arr.length = 5; // відновили довжину
alert( arr[3] ); // undefined:
значення не вернулись
Можна очистити масив так:
arr.length=0;
15. Ще один спосіб створення масиву:
var arr = new Array("Яблуко", "Груша", "Слива");
new Array(n) – створюється масив довжини n, але без
елементів! Цей спосіб краще уникати.
Багатовимірні масиви
Оскільки елементом масиву може бути навіть інший масив,
це дозволяє створювати багатовимірні масиви на зразок:
var matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
alert( matrix[1][1] ); // центральний елемент - 5
16. Методи масивів
split
string.split(separator[, limit])
Приклади:
var names = 'Іван, Степан, Петро, Віктор';
var arr = names.split(', ');
alert(arr); // Іван,Степан,Петро,Віктор
var names = 'Іван, Степан, Петро, Віктор';
var arr = names.split(', ', 3);
alert(arr); // Іван,Степан,Петро
var str = "слово";
alert( str.split('') ); // с,л,о,в,о
17. join
array.join([separator])
Елементи масиву об’єднуються в рядок.
Приклади:
var fruits = ["Banana", "Orange", "Apple",
"Mango"];
var energy = fruits.join();
alert( energy ); // Banana,Orange,Apple,Mango
var fruits = ["Banana", "Orange", "Apple",
"Mango"];
var energy = fruits.join(" + ");
alert( energy ); // Banana + Orange + Apple +
Mango
18. splice
array.splice(index[, howmany, item1, ....., itemX])
Видаляє howmany елементів масиву починаючи з
індекса index і вставляє на їх місце item1, ....., itemX.
Якщо index від’ємний – відраховується з кінця.
Метод повертає масив з видалених елементів.
Приклад:
var users = ["Люда", "Марина", "Іра", "Вася",
"Коля"];
var boys = users.splice(3, 2, "Ніна", "Зіна");
alert( users ); // Люда,Марина,Іра,Ніна,Зіна
alert( boys ); // Вася,Коля
19. Задача 44
У масиві numbers = [1, 2, 3, 4, 5, 6,
7, 8] поміняйте місцями першу і другу
половину. Тобто результатом виконання
коду має бути масив [5,6,7,8,1,2,3,4].
21. slice
array.slice(start, end)
Повертає ділянку масиву від begin до end, не включаючи
end. Вихідний масив при цьому не змінюється.
Приклад:
var numbers = ["Один", "Два", "Три", "Чотири",
"П'ять"];
alert( numbers.slice(1, 4) ); // Два,Три,Чотири
alert( numbers ); // Один,Два,Три,Чотири,П'ять
Якщо аргументу end нема – копіювання йде до кінця
масиву.
Від’ємні індекси відраховуються з кінця.
23. Функція сортування дозволяє задавати свій порядок
сортування. Вона отримує два аргументи a, b і повинна
повертати число > 0, якщо a > b. Приклад:
function compareNumeric(a, b) {
(a > b) ? 1 : -1;
}
var arr = [ 1, 2, 15 ];
arr.sort(compareNumeric); // тільки ім’я функції!
alert(arr); // 1, 2, 15
Можна задавати compareNumeric простіше:
function compareNumeric(a, b) {
return a - b;
}
24. Задача 45
Нехай є масив
var points = [13, 2, 3, 0, -5, 6, 17, 8, 9, 10];
Напишіть функцію getMinMax(arr), яка
отримує масив чисел і виводить масив з двох
чисел – мінімального і максимального елементів
вихідного масиву.
Розв’язок (з коментарями і належним
оформленням коду) надішліть на адресу
viligurskyi@gmail.com
26. Задача 46
Напишіть функцію flipSentence, яка міняє
порядок слів у тексті "Жили-були дід і
баба" на зворотний.
Розв’язок (з коментарями і належним
оформленням коду) надішліть на
адресу viligurskyi@gmail.com
27. Задача 47
Є текст "Іван Сидорук, Петро Гнатюк,
Василь Коваленко". Треба написати
функцію change, яка видає текст, де ім’я і
прізвище переставлені місцями.
Розв’язок (з коментарями і належним
оформленням коду) надішліть на адресу
viligurskyi@gmail.com
28. concat
array1.concat(array2, array3, ..., arrayX)
array2, array3, ... – масиви чи інші елементи.
Приклад:
var arr1 = [1, 2];
var arr2 = [3, 4];
var newArr = arr1.concat(arr2, 5);
alert( newArr ); // 1,2,3,4,5