Массивы

Массивы — тип данных, позволяющий хранить в себе упорядоченный набор данных.

Начнём с примеров.

Массив первых десяти чётных чисел:

var events = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20];

Пустой массив:

var empty = [];

Свойства массивов

Как и в ситуации со строками, единственным широкоиспользуемым свойством массивов является свойство length.

var array = [1, 2, 3];
array.lengh; // => 3

Методы

Для добавления элемента в массив «с конца» используют метод push:

var array = ['Hello'];
array.push('world');

array; // => ['Hello', 'world'];

Кроме push для манипуляции с содержимым массива можно использовать методы pop, shift и unshift.

var array = [1, 2, 3];

array.pop();      // => 3
array;            // => [1, 2]
array.unshift(0); 
array;            // => [0, 1, 2]
array.shift();    // => 0
array;            // => [1, 2]

Для получения фрагмента массива используют метод slice:

var array = [1, 2, 3, 4];

array.slice(0, 2);  // => [1, 2]
array.slice(2, 4);  // => [3, 4]
array.slice(3, 3);  // => []

array.slice();      // => [1, 2, 3, 4]
array.slice(1);     // => [2, 3, 4]
array.slice(1, -1); // => [2, 3]

Первый параметр метода содержит индекс элемента, с которого нужно начать фрагмент. Второй параметр указывает индекс первого элемента, который не попадёт в фрагмент. Если второй параметр меньше нуля, индекс отсчитывается от конца массива. Если второй параметр не использован, фрагмент начинается от индекса, указанного в первом параметре и заканчивается с самим массивом.

При обращении к slice без параметров на выходе получим копию исходного массива.

Пример с копированием

var array = [1, 2, 3, 4];
var a2 = array;
var a3 = array.slice();

a3.push(5);
array;           // => [1, 2, 3, 4]

a2.push(5);
array;           // => [1, 2, 3, 4, 5]

Переменная a2 ссылается на исходный массив array, тогда как a3 хранит ссылку на копию исходного массива. В результате, когда мы изменяем a3, исходный массив не меняется, а при изменении a2 — меняется.

Операция []

Для получения элемента массива по индексу используют запись array[index]:

var array = [1, 2, 3, 4];

array[0];    // => 1
array[3];    // => 4

Для прохода по элементам массива часто используют цикл for, свойство массива length и получение элемента через []:

var array = [1, 2, 3];

for (var i = 0; i < array.length; i = i + 1) {
  console.log(array[i]);   // Выводим элемент массива в консоль
}

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

Задания

  1. Опишите массив array, содержащий все числа от 7 до 13 включительно в порядке возрастания.
  2. Напишите функцию summ, принимающую параметр-массив и возвращающую сумму его значений.
  3. Напишите функцию evens, принимающую массив чисел и возвращающую массив только чётных чисел из исходного массива, в том порядке, в котором они находились в исходном массиве.
  4. Напишите функцию, принимающую на вход два массива чисел и возвращающую массив, состоящий из массивов. Каждый элемент нового массива должен содержать в себе два числа — число из первого массива и число из второго. Например:
var combinations = function(a, b) { … }; // ваша функция

combinations([1, 2, 3], [4, 5]); 
// => [[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]];

results matching ""

    No results matching ""