Всё о массивах в JavaScript: Часть 2
Эта статья является продолжением. Первую часть вы можете прочесть здесь.
Каждый кусок кода можно затестить в REPL.it или в консоли (нажмите f12).
Методы для работы с индексами
Array.prototype.indexOf() - находит номер позиции в массиве.
[0,1,2, 'hi'].indexOf('hi') // 3
Array.prototype.lastIndexOf() - находит последний индекс элемента, если он повторялся в массиве.
[0, 1, 2, 3, 2].lastIndexOf(2) // 4
Array.prototype.findIndex() - находит индекс элемента по условию.
[1, 2, 3].findIndex( el => el === 2 ) // 1
Создание новых массивов на основе старых
Array.prototype.filter() - фильтрует массив и создаёт новый по заданному условию.
[true, 'true', 1, 2, 0, false].filter( el => typeof el === 'boolean') // [true, false]
Array.prototype.map() - создаёт новый массив, изменяя каждый элемент старого. Но можно сделать и так, что метод ничего не поменяет.
[ 25, 81, 121].map( el => Math.sqrt(el)) // [ 5, 9, 11 ] [0,1,2,3].map( el => console.log(el)) /* 0 1 2 3 */
Array.prototype.fill() - заливает массив каким-либо значением. Первый аргумент показывает чем залить, второй с какого момента, ну и третий - до какого.
[1, 3, 5, 6, 3, 5,].fill(0, 2, 4) // [ 1, 3, 0, 0, 3, 5 ]
Array.prototype.concat() - слепляет два массива в один.
['a','b','c'].concat(['d','e','f']); // [ "a", "b", "c", "d", "e", "f" ]
Array.prototype.split() и Array.prototype.join() - первый разбивает строку на массив, второй наоборот соединяет.
array = "One Two Three Four".split(" ") // пробел разделяет строку на элементы массива
// [ "One", "Two", "Three", "Four" ]
array.join("! ");
// "One! Two! Three! Four"
Array.prototype.reduce() - воздействует на массив с помощью функции-редюсера. У редюсера есть два аргумента: аккумулятор и значение каждого элемента. Когда эта функция выполняется, значение может производить любые действия с аккумулятором, например сложение:
[2,3,5].reduce((acc, el) => {return acc + el});
// 0 + 2= 2; 2 + 3 = 5; 5 + 5 = 10
[2, 9, 5].reduce((acc,el) => {return Math.max(acc,el)});
// 0 < 2; 2 < 9; 9 > 5; 9 > 2
// 9
Array.prototype.slice() - урезает массив. Первый аргумент - откуда вырезать, второй - куда.
[1,2,3,4,5].slice(2,4) // [3,4,5]
Array.prototype.splice() - вырезает часть массива или заменяет уже существующий кусок. Первый аргумент - это индекс того, что нужно изменить/убрать, второй - это сколько элементов убрать, третий (необязательный) - что вставить.
Пример вырезания элементов:
[0, 5, 8, 13].splice(2,1); // [ 8 ] [0, 5, 8, 13].splice(2,2) // [ 8, 13 ];
Пример замены элемента
arr = [0, 5, 8, 13]; arr2 = arr.splice(0,1, "Hello World!") // заменяет один элемент в самом начале с 0 до "Hello World!";
Заключение
Да-да, я в курсе что 3 части это уже чересчур, но вы взгляните сколько материала.


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