JavaScript: Работа с Массивами

В JavaScript работа с массивами происходит каждый день. Данная статья будет мини шпаргалкой по наиболее полезным методам для работы с массивами в JavaScript.

Содержание:

  1. length;
  2. every;
  3. some;
  4. filter;
  5. forEach;
  6. concat;
  7. join;
  8. sort;
  9. reverse;
  10. slice;
  11. splice;
  12. indexOf;
  13. lastIndexOf;
  14. map;
  15. pop;
  16. push;
  17. shift;
  18. unshift;
  19. reduce.

length

Вернёт количество элементов в массиве.

["Z", "X", "C", "V"].length // 4

every

Вернёт true, если каждый элемент массива возвращает true.

[5, 6, 7, 8].every(item => item > 4) // true

some

Вернёт true, если хотя бы один элемент массива возвращает true.

[-5, -3, -1, 2].some(item => item > 0) // true

filter

Метод filter создаёт новый массив из элементов, соответствующих заданному условию (вернувших true).

[4, -2, 4, -4, 1].filter(item => item > 0) // [4, 4, 1]

forEach

Выполнение функции для каждого элемента массива.

["K", "L", "M", "N"].forEach(el => console.log(el))

concat

Метод concat объединяет массивы, но не изменяет первоначальный массив, он возвращает новый.

const array = ["G", "H", "J"];
const new_array = array.concat(["K", "L"]);

console.log(new_array); // ["G", "H", "J", "K", "L"]
console.log(array);     // ["G", "H", "J"]

Тоже самое можно сделать с помощью Spread оператора:

const array_1 = ["G", "H", "J"];
const array_2 = ["K", "L"];

const result = [...array_1, ...array_2] // ["G", "H", "J", "K", "L"]

join

Объединение элементов массива в строку с разделителем , по умолчанию.

["K", "L", "M"].join() // K,L,M

["Hello", "beautiful", "web"].join(", ") // Hello, beautiful, web

sort

Возвращает отсортированный массив.

["B", "D", "C", "E", "A"].sort() // ["A", "B", "C", "D", "E"]

["B", "D", "C", "E", "A"].sort((a, b) => b > a) // ["E", "D", "C", "B", "A"]

reverse

Сортировка массива задом наперёд.

["K", "L", "M"].reverse() // ["M", "L", "K"]

slice

Возвращает новый массив от begin до end slice(begin, end). Индексы начинаются с нуля.

["K", "L", "M"].slice(2) // ["M"]
["K", "L", "M"].slice(0, 1) // ["K"]
["HTML", "CSS", "JS", "PHP"].slice(1, 3) // ["CSS", "JS"]

splice

Возвращает новый массив, удаляя существующие элементы и/или добавляя новые.

let array = ["I", "love", "beautiful", "Web"];
let deleted_elements = array.splice(1, 2); // с 1 индекса удаляем два элемента

console.log(array);            // ["I", "Web"]
console.log(deleted_elements); // ["love", "beautiful"]

Удалим все элементы после 3 индекса (включительно).

let words = ["HTML", "CSS", "JS", "PHP", "JSON"];
let deleted_words = words.splice(3);

console.log(words);         // ["HTML", "CSS", "JS"]
console.log(deleted_words); // ["PHP", "JSON"]

Удалим «HTML», «SASS» и добавим «JS», «PHP».

let technologies = ["HTML", "SASS", "Liquid"];
let deleted_technologies = technologies.splice(0, 2, "JS", "PHP");

console.log(technologies);         // ["PHP", "JSON", "Liquid"]
console.log(deleted_technologies); // ["HTML", "SASS"]

indexOf

Вернёт индекс первого найденного элемента, в противном случае -1:

["K", "L", "M", "L", "L"].indexOf("L") // 1
["K", "L", "M"].indexOf("N")           // -1

lastIndexOf

Вернёт индекс последнего найденного элемента, в противном случае -1:

["HTML", "JS", "PHP", "JS"].lastIndexOf("JS") // 3
["HTML", "JS", "PHP"].lastIndexOf("CSS")      // -1

map

Метод map возвращает новый массив из результатов вызова каждого элемента массива.

Подсчёт символов в каждом элементе массива.

const technologies = ["HTML", "CSS", "JS", "PHP"];
const lengths = technologies.map((tech) => tech.length);

console.log(lengths); // [4, 3, 2, 3]

pop

Удаляет последний элемент из массива и возвращает его (этот элемент).

let array = ["HTML", "CSS", "JS"];
let last_el = array.pop();

console.log(array);   // ["HTML", "CSS"]
console.log(last_el); // JS

push

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

let array = [4, 5, 6];
let count_els = array.push(7, 8);

console.log(array);     // [4, 5, 6, 7, 8]
console.log(count_els); // 5

Объединение двух массивов в один.

const array_1 = ["HTML", "CSS"];
const array_2 = ["JS", "PHP"];
Array.prototype.push.apply(array_1, array_2);

console.log(array_1); // ["HTML", "CSS", "JS", "PHP"]

shift

Метод shift удалит первый элемент из массива и вернёт его.

const array = [7, 8, 9];
const first_el = array.shift();

console.log(first_el); // 7
console.log(array);    // [8, 9]

unshift

Добавит элемент(ы) в начало массива и вернёт общее получившееся количество элементов.

const array = [5, 6, 7];
const length = array.unshift(8, 9);

console.log(length); // 5
console.log(array);  // [8, 9, 5, 6, 7]

reduce

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

Посчитаем сумму значений массива.

[2, 3, 4].reduce((summ, currentVal) => summ + currentVal) // 9

Проделаем тоже самое, только с массивом, состоящим из объектов.

const array = [{ keyName: 2 }, { keyName: 3 }, { keyName: 4 }];
const array_summ = array.reduce(((summ, currentVal) => summ + currentVal.keyName), 0);

console.log(array_summ); // 9

Получение из массива, содержащего массивы, один массив.

[[4, 5], [6, 7], [8, 9]].reduce((a, b) => a.concat(b)) // [4, 5, 6, 7, 8, 9]

Это далеко не все методы для работы с массивами в JavaScript, данная шпаргалка с течением времени будет дополняться актуальными методами.