Ранее мы узнали о циклах и различных видах циклов. В этом блоге мы узнаем о массивах.

Что такое массив и зачем он нам нужен?

Прежде чем мы перейдем к техническим аспектам, важно понять массивы на более простом уровне. Предположим, вы хотите хранить 100 четных чисел, но хотите иметь доступ к каждому из них по отдельности. Самый медленный подход к этому — создать 100 переменных, таких как even1,even2,even3,even4 и т. д. Но с массивами мы можем хранить все 100 значения в одной переменной, и к ним можно получить доступ по отдельности, используя их индекс.

Массив JavaScript — это одна переменная, которая используется для хранения различных элементов. Он часто используется, когда мы хотим сохранить упорядоченный список элементов и получить к ним доступ с помощью одной переменной. В отличие от большинства языков, где массив — это ссылка на несколько переменных, в JavaScript массив — это одна переменная, в которой хранится несколько элементов.

Индекс в основном похож на адрес/местоположение элемента в массиве, который выглядит как 0,1,2,3,4, где 0 — первый элемент, а 4 — пятый элемент. Вот пример:

let even = [2,4,6,8,10,12,14,16,18,20]    //stores 10 even numbers
//indexes   0 1 2 3  4  5  6  7  8  9  
console.log(even[5])    //prints the number at the fifth index i.e. 12

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

  • В javascript массивы не являются примитивным типом данных, а вместо этого являются типом объекта . Мы узнаем больше об объектах в моем следующем блоге.
  • Массивы JavaScript могут изменять размер и могут содержать смесь различных типов данных.
  • Массивы JavaScript не являются ассоциативными массивами, поэтому к элементам массива нельзя получить доступ, используя произвольные строки в качестве индексов, но к ним необходимо обращаться, используя неотрицательные целые числа (или их соответствующую строковую форму) в качестве индексов.
  • При копировании массива создается неглубокая копия. Когда мы копируем массив в массив, а затем меняем значение в этом массиве, исходный массив также будет изменен.
  • Метод .length даст нам длину любого массива. Длина массива всегда на 1 больше, чем последний индекс.

Как вывести все элементы массива?

Допустим, у нас есть массив первых 10 натуральных чисел, и мы хотим напечатать их все. Самым медленным подходом было бы напечатать каждый элемент с 10 операторами console.log следующим образом:

console.log(arr[0])
console.log(arr[1])
console.log(arr[2])
console.log(arr[3])
console.log(arr[4])
console.log(arr[5])
//.... this continues till arr[9]

Но мы также можем использовать цикл, чтобы сделать это проще. Мы должны создать цикл, который идет от 0 до последнего индекса массива (длина-1), и мы будем использовать эту переменную цикла в качестве индекса массива. Возьмем тот же пример:

let natural = [1,2,3,4,5,6,7,8,9,10];

for(i=0; i<natural.length; i++){    //i is the index of the array
  console.log(natural[i]) //prints each element at i index. i value is from 0 to 9
}    
/*
Output:
1
2
3
4
5
6
7
8
9
10
*/

Методы массива

Одной из особенностей массивов в javascript является то, что существует несколько предопределенных методов, которые делают все виды операций с массивами очень простыми. Вот некоторые из методов массива, которые должен знать каждый:

.push()

Этот метод используется для добавления одного или нескольких новых элементов в конец массива. Пример:

let arr = [1,2,3,4];
arr.push(5,6);
console.log(arr);    //prints [1,2,3,4,5,6]

.pop()

Этот метод используется для удаления элемента по последнему индексу из массива. Пример:

let arr = [1,2,3,4];
arr.pop();
console.log(arr);    //prints [1,2,3]

.shift()

Этот метод используется для удаления одного элемента из начала массива по нулевому индексу. Пример:

let arr = [1,2,3,4];
arr.shift();
console.log(arr);    //prints [2,3,4]

.unshift()

Этот метод используется для добавления одного или нескольких элементов в начало массива по нулевому индексу. Пример:

let arr = [1,2,3,4];
arr.unshift(0,0);
console.log(arr);    //prints [0,0,1,2,3,4]

arr.map()

Этот метод используется для создания нового массива путем вызова функции для каждого из элементов. Функция имеет три параметра: элемент, индекс и массив. Например:

let arr = [1,2,3,4];

let squares = arr.map(item => item*item);
console.log(squares);  //prints [1,4,9,16]

arr.splice()

Этот метод используется для удаления определенной части массива. Для этого требуются два параметра, которые являются отправной точкой и до того места, где мы хотим его разрезать. Он изменяет исходный массив

let arr = [1,2,3,4,5,6,7];
arr.splice(3,2)    //removes two elements from the 3rd index

console.log(arr)     //prints [1,2,3,6,7]
console.log(arr.splice(2)) //prints [3,6,7]
console.log(arr)  //prints 1,2

arr.slice()

Похож на метод сращивания, но используется по-другому. Принимает два параметра: начальный индекс и конечный индекс, до которого вы хотите разрезать. Если мы используем arr.splice(0,3), он вернет только элементы с индексами 0, 1 и 2. Он не изменяет исходный массив.

let arr = [1,2,3,4,5,6,7];
console.log(arr.slice(0,4)) //returns 1,2,3,4
console.log(arr.slice(-3)    //returns 5,6,7
console.log(arr.slice(3))  //returns 4,5,6,7

Методы массива важны, и вы должны прочитать их все на https://javascript.info/array-methods. В следующем блоге мы поговорим об объектах.

Спасибо за чтение.