четверг, 8 июня 2017 г.

Sorax. 24. Массивы

/*
Массив - упорядоченный набор элементов, каждый из которых имеет свой порядковый номер (индекс).
Элементами массива могут быть значения любых типов, в т.ч объекты и массивы.
*/



var array = [1, 3, 4]; // Литерал массива
console.log(array[2]); // 4. Обращение к элементам массива. Индексация начинается с 0.

var months = ["January", "February", "March", "April"];
console.log(months[0]); // January
console.log(months[10]); // undefined

// По индексу мы можем не только получать элемент массива, но и изменять его или создавать.
months[4] = "May";
console.log(months); // Array [ "January", "February", "March", "April", "May" ]

// length хранит кол-во элементов в этом массиве
console.log(months.length); // 5

// Добавим элемент в конец массива
months[months.length] = "June";
console.log(months); // Array [ "January", "February", "March", "April", "May", "June" ]

// В JS элементы в массиве не обязательно должны идти под последовательными индексами.
// В этом примере получим разряженный массив.
months[20] = "Something";
console.log(months); // Array [ "January", "February", "March", "April", "May", "June", <4 пустых элемента>, ещё 11… ]

console.log(months.length); // 21
// Длина массива - это индекс последнего элемента плюс 1.

// Массивы в JS - это объекты. Поэтому у массива есть функция конструктор Array
console.log(typeof months); // object

// С помощью Array мы можем создавать новые массивы.
var myArray = new Array(34, 622, 1231);
console.log(myArray); // Array [ 34, 622, 1231 ]

// Если мы передаем только один аргумент, то он станет длинной массива.
var myArr = new Array(34);
console.log(myArr.length); // 34

// В литералах массива мы можем пропускать элементы.
var thirdArray = [,,,3];
console.log(thirdArray); // Array [ <3 пустых элемента>, 3 ]

// Индексы массива по сути тоже, что и имена свойств объекта. Они хранятся в виде строк.
// Мы можем использовать строки вместо индексов.

months["someProperty"] = "someValue";
console.log(months);

// Есть отличия индексов от имен свойств.
// Индексами могут быть только неотрицательные целые числа.
// Когда мы добавляем элементы с разными индексами, то автоматически обновляется свойство length.


// Если мы присвоим length значение, то все элементы с индексами больше этого значения будут удалены из массива.
months.length = 5;
console.log(months); // Array [ "January", "February", "March", "April", "May" ]

// Удаление элементов из массива с помощью delete, кот. не изменяет длины массива и не сдвигает элементы.
// Удаление - тоже, что и присваиваение под этим индексом undefined.
delete months[3];
console.log(months); // Array [ "January", "February", "March", <1 пустой элемент>, "May" ]

// Проверка на массивы при помощи isArray
console.log(Array.isArray(months)); // true

// МЕТОДЫ ДЛЯ РАБОТЫ С МАССИВАМИ.
// join возвращает элементы массива соединенные в одну строку. По умолчанию разделителем является запятая.
var array = ["Some string", "Another string", "Third string"];
// console.log(array.join(" || ")); // Some string || Another string || Third string

// reverse возвращает обратный массив, изменяя исходнй массив.
// console.log(array.reverse()); // Array [ "Third string", "Another string", "Some string" ]

// sort сортирует массив в обратном порядке, преобразуя элементы в строку.
// console.log(array.sort()); // Array [ "Another string", "Some string", "Third string" ]
// функция может опредалить другое поведение при сортировке : console.log(array.sort(function(a,b)));

// concat складывает массив с другим массивом, не изменяя исходный массив, а возвращая новый массив
// console.log(array.concat("Hello")); // Array [ "Some string", "Another string", "Third string", "Hello" ]

// slice не изменяя исходный массив, а возвращая новый массив. Он верезает элементы из массива.
// console.log(array.slice(1)); // Array [ "Another string", "Third string" ]

// splice изменяет массив. Нужен для удаления элементов из массива и вставки элементов в массив.
// console.log(array.splice()); // Array [  ]
// console.log(array.splice(1, 1, "Sorax", "Web")); // Array [ "Another string" ]
// console.log(array); // Array [ "Some string", "Sorax", "Web", "Third string" ]

// push добавляет в конец массива один или несколько элементов
// array.push("JS");
// console.log(array); // Array [ "Some string", "Another string", "Third string", "JS" ]

// unshift добавляет в начало массива один или несколько элементов
// array.unshift("Hello!");
// console.log(array); // Array [ "Hello!", "Some string", "Another string", "Third string" ]

// pop удаляет последний элемент из массива и возвращает этот элемент
// console.log(array.pop()); // Third string
// console.log(array.pop()); // Another string

// shift удаляет элемент из начала массива и возвращает этот элемент
// console.log(array.shift()); // Some string

Комментариев нет:

Отправить комментарий