Array в Javascript

Array в Javascript

Всем доброго времени суток. На связи Алексей Гулынин. В данной статье я бы хотел рассказать об объекте Array в Javascript. Как вы знаете из предыдущей статьи, с помощью данного объекта создаются массивы в Javascript. Давайте разбираться со свойствами и методами данного объекта. У данного объекта есть основное свойство length — длина массива (количество элементов). Это уже знакомое нам свойство, возвращает длину массива. Длина массива на единицу больше, чем максимальный индекс в массиве (это из-за того, что нумерация идёт с нуля). Пример использования данного свойства:

<script type="text/javascript">
var mas = [ 13, 5, 3, 1, 2, -6, 7, 0, -3 ];
document.write(mas.length);//будет выведено 9
</script>

Есть также другие свойства (точнее псевдосвойства) input и index. Применения я им не нашёл и нигде никогда не использовал, поэтому здесь не описываю.

Теперь перейдём к методам:

1) Метод concat() позволяет добавить к уже существующему массиву новые элементы (также можно добавить другой массив). Пример использования:

var mas = [ 13, 5, -6, 7, 0, -5 ];
var newMas = mas.concat(-100, new Array(1,2,3));
var i;
for (i = 0; i < newMas.length; i++)
	document.write(newMas[i]+" ");

После вывода на экран, мы увидим, что массив newMass был составлен из элементов массива mas + дополнительных, которые мы добавили с помощью метода concat().

2) Метод join() возвращает нам строку элементов массива, разделенных запятой. Пример использования:

var mas = [ 13, 5, -6, 7, 0, -5 ];
document.write(mas.join());	

Данный метод удобен для отладки массивов, чтобы каждый раз не писать циклы. Также в качестве параметра можно указать разделитель элементов, например так:

var mas = [ 13, 5, -6, 7, 0, -5 ];
document.write(mas.join("***"));

В данном случае вместо "," будет выведено "***".

3) Метод shift() удаляет первый элемент массива и возвращает его. Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
var first = mas.shift();
document.write(first+"</br>"); //выведет 13
document.write(mas.join()); //Число 13 будет отсутствовать	

4) Метод pop() удаляет последний элемент массива и возвращает его. Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
var last = mas.pop();
document.write(last+"</br>"); //выведет -5
document.write(mas.join()); //Число -5 будет отсутствовать	

5) Метод push() добавляет новые элементы в конец массива и возвращает новую длину массива. Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
var newLen = mas.push(2,2);
document.write("Новая длина массива = "+newLen+"</br>"); //выведет 8 вместо 6
document.write(mas.join()); //Выведет два новых элемента в конце (2,2)

Данный метод похож на метод concat(). Отличие в том, что метод concat не изменяет исходный массив и соответственно не возвращает новую длину.

6) Метод unshift() добавляет новые элементы в начало массива и возвращает новую длину массива. Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
var newLen = mas.unshift(100,100,100);
document.write("Новая длина массива = "+newLen+"</br>"); //выведет 9 вместо 6
document.write(mas.join()); //Выведет три новых элемента в начале (100, 100, 100)

7) Метод reverse() позволяет развернуть массив (т.е. первый элемент сделать последним, второй — предпоследним и т.д.). Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
mas.reverse();
document.write(mas.join()); //Выведет -5,0,7,-6,5,13

8) Метод slice() позволяет взять определенную часть из исходного массива и записать её в другой массив. Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
var newMas = mas.slice(2,5); //будут взяты элементы -6, 7, 0
document.write(newMas.join() + "</br>");
newMas = mas.slice(2); //будут взяты элементы -6, 7, 0, -5
document.write(newMas.join());

Если в параметрах метода slice() указывать 2 параметра, то будет взята та часть массива, которая начинается (в нашем случае) со второго элемента включительно и до 5 элемента (5 элемент не включается). Если второй параметр не указывать, то будет взят весь массив, начиная со второго элемента (в нашем случае).

9) Метод sort() позволяет отсортировать массив. Причем как сортировать массив мы можем задать самостоятельно. Для этого необходимо определить функцию, в которой будет написана логика сортировки. Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
mas.sort();
document.write(mas.join());

Если вы запустите данный пример, то увидите, что получилась какая-то ерунда. Почему у нас число "13" оказалось перед числом "5". Все дело в том, что функция sort() сортирует строковые элементы. В числе "13" цифра "1" меньше "5", поэтому данное число и стоит перед числом "5". Давайте напишем свою функцию сравнения и переделаем пример:

function mySort(a,b) {
	if (a > b) return 1;
	if (a < b) return -1;
	return 0;
}
var mas = [ 13, 5, -6, 7, 0, -5 ];
mas.sort(mySort);
document.write(mas.join());

Если мы теперь запустим данный скрипт, то увидим, что всё нормально. В данном примере мы создали функцию сортировки, по которой, если первое число больше второго, то возвращается "1", если нет — то "-1", если они равны, то возвращается "0".

10) Метод filter() позволяет выбрать элементы массива по определенному условию. Обратите внимание на синтаксис. Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
var newMas = mas.filter(function(item) {return item > 5;});
document.write(newMas); //будут выведены 13 и 7

11) Метод forEach() позволяет выполнить действия над каждым элементом массива. Пример:

var mas = [ 13, 5, -6, 7, 0, -5 ];
mas.forEach(function(item) {document.write(item * item + "</br>");}); //будут выведены квадраты чисел

Это были основные свойства и методы объекта Array(). Смысла их запоминать нет, всегда можно посмотреть пример работы и описание в данной статье.

Домашнее задание: в данной статье я не рассмотрел пример работы таких методов, как every(), some() и map(). Найдите их описание в интернете и создайте простой пример, показывающий работу данных функций. Пишите ваши примеры в комментариях.

В данной статье вы узнали, что такое Array в Javascript.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *