Массив - это особая концепция в любом языке программирования. Все основные языки программирования поддерживают структуру данных массива. Прежде чем углубляться в технические детали массива с точки зрения программирования, давайте попробуем понять, что такое массив с точки зрения обычного человека.

Вы когда-нибудь видели школьное собрание? Это довольно очевидно, вы это видели, и в детстве мы все были участниками этого скучного события. В актовом зале ученики одного класса или секции сидят в одном ряду, не так ли. Это минимальный реальный пример массива.

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

Расположение элементов внутри массива приводит к особой структуре, из-за которой массивы называются особым типом структуры данных. Термин «структура данных» относится к расположению данных таким образом, что установка и извлечение элементов очень просты и следуют определенному шаблону.

По сути, массив может просто содержать простые элементы данных, такие как числа и строки, или, в более сложных сценариях, они могут содержать сложные объекты. В частности, в javaScript массивы основаны на хэш-таблицах, и они не обязательно размещаются в непрерывных ячейках памяти.

Массивы JavaScript основаны на индексах, и мы можем устанавливать и извлекать элементы на основе их индексов. JavaScript по существу не поддерживает концепцию ассоциативных массивов, что означает, что он не извлекает и не устанавливает элементы массива с помощью ключей или простых строк терминов.

Самый простой способ инициализировать массив в JavaScript - это

var arr = [];

Если вы хотите сохранить какие-то элементы, скажем, несколько чисел в массиве, мы можем инициализировать его следующим образом.

var arr = [1,2,3,4,5];

Если вы хотите сохранить некоторые объекты в массиве, это будет похоже на фрагмент кода ниже. В этом случае массив также известен как массив объектов.

var arr = [ 
        { name: 'Satya', age: 28 }, 
        { name: 'Priya', age: 24 }, 
        { name: 'Mishra', age: 23 } 
];

Массивы JavaScript не индексируются. Что это значит и почему? Посмотрим через некоторое время.

Нулевой индекс просто означает, что индекс первого элемента массива JavaScript начинается с 0, как и в C и C ++. Существуют другие программы COBOL, FORTRAN, R, Julia и т. Д., Которые не следуют этому соглашению. Это происходит с JavaScript из-за конструкции языка программирования. Когда мы говорим, что хотим получить доступ к первому элементу массива, по замыслу, первый элемент находится в месте, на которое ссылается сама переменная массива. Таким образом, здесь индекс не указывает на позицию элемента в памяти, а скорее указывает на смещение элемента от начальной ячейки памяти, на которую указывает переменная. Ясно, Ха. Теперь давайте рассмотрим некоторые важные свойства и методы структуры данных массива в JavaScript.

длина

Свойство length дает количество элементов, присутствующих в массиве. Это очень важное свойство, так как оно очень полезно при итерации по массиву. Индекс последнего элемента в массиве на 1 меньше длины.

var arr = [1, 2, 3, 4, 5]; 
console.log(arr.length); // 5

Чтобы получить последний предмет, мы можем сделать следующее:

arr[arr.length - 1] // 5

Для итерации по массиву мы можем запустить цикл for по массиву со свойством length, входящим в качестве условия.

for (var i = 0; i < arr.length; i++) {
 console.log(arr[i]);
}

push ():

Метод push используется для добавления нового элемента массива в конец массива. Довольно просто. Посмотрим на синтаксис.

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

pop ():

Метод pop используется для удаления последнего элемента из массива. Мы даже можем очистить массив с помощью этого метода, если мы запустим цикл для массива для счетчика, равного длине массива, и вытолкнем из него каждый элемент. Метод pop () возвращает всплывающее значение.

var arr = [1, 2, 3, 4, 5]; 
var len = arr.length; 
for (var i = 0; i < len; i++) {
 arr.pop(); 
}

shift ():

Метод shift () используется для удаления элемента из начала массива. Он возвращает удаленный элемент после операции.

var arr = [1, 2, 3, 4, 5]; 
arr.shift();

unshift ():

Метод unshift используется для добавления нового элемента в начало массива. Возвращает длину последнего массива.

var arr = [1, 2, 3, 4, 5]; 
arr.unshift(0);

delete ():

Метод удаления используется для удаления записи массива следующим образом.

var arr = [1, 2, 3, 4, 5]; 
delete arr[2]; 
console.log(arr); // [1, 2, empty, 4, 5]

Он возвращает логическое значение true или false в зависимости от того, успешно ли была проведена операция удаления. Удаленный элемент отображается как пустой в массиве, и длина массива остается неизменной. Это происходит потому, что, хотя в конкретном месте памяти нет элемента, он все равно учитывается в длине массива.

splice ():

Метод splice удаляет элементы массива и заменяет новые элементы, если они предусмотрены. Синтаксис метода splice () следующий.

splice (начальный индекс для удаления элемента, количество элементов для удаления, элементы для замены);

Третий параметр необязательный.

var arr = [1, 2, 3, 4, 5]; 
arr.splice(1, 2); 
console.log(arr); // [1, 4, 5]

При замене элементов, указав третий параметр, мы можем сначала удалить элемент и заменить его новыми элементами.

var arr = [1, 2, 3, 4, 5]; 
arr.splice(1, 2, 9, 10); 
console.log(arr); // [1, 9, 10, 4, 5]

Если задан отрицательный индекс, операция склейки выполняется с конца массива. Этот метод возвращает новый массив, содержащий удаленные элементы.

Slice ():

Этот метод возвращает новый массив, содержащий указанные элементы, за исключением последнего предоставленного индекса.

arr = [1, 2, 3, 4, 5]; 
arr.slice(1, 3); // [2, 3]

concat ():

Метод concat объединяет более двух массивов или значений в один массив и возвращает новый массив. Новый массив сериализуется в соответствии с исходными массивами.

var arr1 = [1, 2]; 
var arr2 = [3, 4]; 
arr1.concat(arr2); // [1,2,3,4]

Порядок операции concat имеет значение, и последовательность изменяется, как показано в следующем фрагменте кода.

var arr1 = [1, 2]; 
var arr2 = [3, 4]; 
arr2.concat(arr1); // [3,4,1,2]

Метод concat также принимает отдельные значения в качестве аргументов, как показано ниже.

var arr1 = [1, 2]; 
var arr2 = [3, 4]; 
arr1.concat(arr2, 5, 6); // [1,2,3,4,5,6]

forEach ():

Метод forEach используется для перебора массива. Он встроен в прототип Array. Преимущества цикла forEach выше:

  • у него четкий синтаксис
  • метод forEach сохраняет переменные из функции обратного вызова, привязанные к локальной области видимости
  • forEach менее подвержен ошибкам

Пример метода forEach приведен ниже.

arr = [1,2,3,4,5];
arr.forEach((item, index) => {
 console.log(`${item} is at index ${index}`); 
}); 
// 1 is at index 0 
// 2 is at index 1 
// 3 is at index 2 
// 4 is at index 3 
// 5 is at index 4

indexOf ():

Этот метод возвращает позицию первого вхождения элемента в массив. Если предоставленный элемент не является частью массива, он возвращает -1. Благодаря этой функции этот метод используется для проверки наличия элемента в массиве.

Сначала давайте рассмотрим очень простой пример.

var arr = [1, 2, 3, 4, 5]; 
arr.indexOf(3); //2

Чтобы проверить, присутствует ли элемент в массиве, мы можем сделать следующее:

var arr = [1, 2, 3, 4, 5];
if (arr.indexOf(item) > -1) {
 // Code to be executed when item is present 
}

lastIndexOf ():

Метод lastIndexOf возвращает последнее вхождение элемента в массиве. По сути, поиск выполняется с конца массива.

var arr = [1, 2, 3, 4, 1, 6]; 
arr.lastIndexOf(1); // 4

включает ():

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

var arr = [1, 2, 3, 4, 5]; 
arr.includes(2); // true

find ():

Метод find используется для поиска определенного элемента в массиве. Этот метод очень полезен, особенно когда вы имеете дело с массивом объектов. Мы передаем условие для этого метода, и он выбирает первый элемент, который соответствует условию. Если ни один элемент не соответствует условию, возвращается значение undefined.

var students = [ 
{ roll: 1, name: "John" }, 
{ roll: 2, name: "Pete" }, 
{ roll: 3, name: "Mary" } 
]; 
var student = students.find(student => student.roll == 2); console.log(student.name); // {roll: 2, name: "Pete"}

findIndex ():

Этот метод возвращает индекс найденного элемента вместо всего объекта, и если ни один элемент не соответствует условию, он возвращает -1.

var students = [ 
{ roll: 1, name: "John" }, 
{ roll: 2, name: "Pete" }, 
{ roll: 3, name: "Mary" } 
]; 
var student = students.find(student => student.roll == 2); console.log(student.name); // 1

map ():

Функция map () используется для преобразования массива. Он принимает другую настраиваемую функцию в качестве аргумента и применяет эту функцию к каждому элементу массива. Функция, предоставленная в качестве аргумента, может быть обычной функцией ванильного JavaScript или стрелочной функцией.

var arr = [1, 2, 3, 4, 5]; 
arr.map(function (item) { console.log(item + 1); });

Сортировка ():

Метод сортировки, как следует из названия, используется для сортировки массива. Простая проблема с методом сортировки заключается в том, что он сортирует элементы по соответствующим строковым значениям ASCII, что иногда дает неточные результаты.

Чтобы решить эту проблему, мы передаем функцию обратного вызова в качестве аргумента, который сравнивает элементы и дает точный результат. Простое использование метода сортировки заключается в следующем.

arr = [3, 2, 3, 4, 2, 2, 7]; 
arr.sort(function (a, b){ return a - b; });//ascending order sorting

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

arr.sort(function (a, b) {
 return b - a; 
});// descending order sorting

Обратный ():

Этот метод используется для обращения массива. Это очень простой метод.

var arr = [1, 2, 3, 4, 5]; 
arr.reverse();

reduce ():

Этот метод используется для уменьшения массива до одного значения.

function sum(total, num) { 
  return total + num; 
} 
var arr = [1, 2, 3, 4, 5]; 
numbers.reduce(sum); // 15

isArray ():

Этот метод возвращает логическое значение, указывающее, является ли предоставленная переменная массивом или нет. Если значение является массивом, оно возвращает истину, иначе возвращает ложь.

var arr = [1, 2, 3, 4, 5]; 
Array.isArray(arr); // true 
Array.isArray({}); // false

Это в значительной степени наиболее необходимые методы массива.