Всё о массивах в JavaScript: Часть 2

Всё о массивах в 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-ей части, и как всегда, спасибо за прочтение!

Report Page