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

Методы для работы с концом массива

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

Код
const arr = [1, 2, 3, 6, 8];

arr.pop(); // удалили последний элемент
console.log(arr.pop()); // 6 удалили последний элемент и вывели в консоль его значение
console.log(arr); // [ 1, 2, 3 ] получили массив оставшихся элеменов

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

Код
const arr = [1, 2, 3, 6, 8];

arr.push(10); // добавили новый элемент в конец массива
console.log(arr.push(12)); // 7 добавили новый элемент в конец массива и вывели новую длину массива в консоль
console.log(arr); // получили новый массив

Цитата
[
1, 2, 3, 6,
8, 10, 12
]

Методы для работы с началом массива

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

Код
const arr = [1, 2, 3, 6, 8];

arr.shift(); // удалили первый элемент массива
console.log(arr.shift()); // удалили первый элемент массива и получили его значение
console.log(arr); // получили массив оставшихся элементов

Цитата
2
[ 3, 6, 8 ]

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

Код
const arr = [1, 2, 3, 6, 8];

arr.unshift(0); // добавили элемент в начало массива
console.log(arr.unshift('true')); // 7 добавили элемент в начало массива и получили его длину
console.log(arr); // получили новый список элементов в массиве

Цитата
[
'true', 0,
1, 2,
3, 6,
8
]

Перебор элементов массива

Код
const arr = [1, 2, 3, 6, 8];

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

Цитата
1
2
3
6
8

Вариант перебора с помощью for/of

Код
for (let value of arr) {
  console.log(value);
}

Цитата
1
2
3
6
8

Значение length = индекс последнего элемента массива плюс единица

Частный случай (разреженный массив):

Запишем какой-то элемент на 99-й индекс:

Код
const arr = [1, 2, 3, 6, 8];

arr[99] = 12;

console.log(arr);
console.log(arr.length)

Цитата
[ 1, 2, 3, 6, 8, <94 empty items>, 12 ]
100

Метод forEach() выполняет указанную функцию один раз для каждого элемента в массиве.

Код
const arr = [1, 2, 3, 6, 8];

arr.forEach(function(item, i, arr) {
  console.log(`Элемент ${item} под номером ${i} принадлежит массиву ${arr}`);
});

Цитата
Элемент 1 под номером 0 принадлежит массиву 1,2,3,6,8
Элемент 2 под номером 1 принадлежит массиву 1,2,3,6,8
Элемент 3 под номером 2 принадлежит массиву 1,2,3,6,8
Элемент 6 под номером 3 принадлежит массиву 1,2,3,6,8
Элемент 8 под номером 4 принадлежит массиву 1,2,3,6,8

item - текущий перебираемый элемент (название произвольное)
i - номер по порядку (индекс элемента)
arr - ссылка на перебираемый массив

Использовать for/of или forEach() ?

В основном используется forEach(), но у метода for/of есть возможность использования ключевых слов break и continue

Методы split(), join(), sort()


Метод split() разбивает объект String на массив строк путём разделения строки указанной подстрокой.

Код
const str = 'автомобиль,велосипед,самолёт,мотоцикл,катер';

const products = str.split(',');
console.log(products);

Цитата
[ 'автомобиль', 'велосипед', 'самолёт', 'мотоцикл', 'катер' ]

Метод join() объединяет все элементы массива (или массивоподобного объекта) в строку.

Код
const str = 'автомобиль,велосипед,самолёт,мотоцикл,катер';

const products = str.split(','); // [ 'автомобиль', 'велосипед', 'самолёт', 'мотоцикл', 'катер' ]
console.log(products.join('; ')); // автомобиль; велосипед; самолёт; мотоцикл; катер

В параметрах у этих методов указывается тот разделитель, который будет между выведенными элементами (например, запятая, двоеточие и т.д)

Метод sort() на месте сортирует элементы массива и возвращает отсортированный массив.

Код
const str = 'автомобиль,велосипед,самолёт,мотоцикл,катер';
const products = str.split(',');

console.log(products.sort());

Цитата
[ 'автомобиль', 'велосипед', 'катер', 'мотоцикл', 'самолёт' ] // отсортировались по алфавиту

Применимо к массиву с цифрами:

Код
const arr = [2, 13, 6, 8, 10];

console.log(arr.sort()); // [ 10, 13, 2, 6, 8 ]

Так происходит потому, что метод изначально сортирует всё как строки с посимвольным сравнением.

Этого можно избежать, если задействовать функцию с алгоритмом сортировки:

Код
const arr = [2, 13, 6, 8, 10];

function compareNum(a, b) {
  return a - b;
}

console.log(arr.sort(compareNum)); // [ 2, 6, 8, 10, 13 ]

Псевдомассив - это объект, структура которого схожа с массивом, но не имеющий методов массива

Алгоритм быстрой сортировкиСсылка на шпаргалку по объектам и массивамОтличие for...of от for...in

Всего комментариев: 0

Имя *:
Email *:
Код *:
Хостинг от uCoz