JavaScript

Array

Agenda

  • Array methods

Array methods

  • arr.push(...items) – добавляет элементы в конец,
  • arr.pop() – извлекает элемент из конца,
  • arr.shift() – извлекает элемент из начала,
  • arr.unshift(...items) – добавляет элементы в начало.
let arr = [];
arr.push(1);
console.log(arr) // [1]
let arr = [1];
arr.pop(); // вернет последний элимент из массива и удалит его в массиве.
console.log(arr) // []
let arr = [1, 2];
arr.shift() // 1
console.log(arr) // [2]
let arr = [1];
arr.unshift(2);
console.log(arr) // [1, 2]

Array methods (splice)

Метод splice() изменяет содержимое массива, удаляя существующие элементы и/или добавляя новые.

let arr = [1, 2, 3];

delete arr[1]; // удаляем 2.

console.log( arr[1] ); // undefined
console.log( arr.length ); // 3

Array methods (splice)

arr.splice(index[, deleteCount, elem1, ..., elemN])

Метод arr.splice(str) – умеет всё: добавлять, удалять и заменять элементы.

Он начинает с позиции index, удаляет deleteCount элементов и вставляет elem1, ..., elemN на их место. Возвращает массив из удалённых элементов.

Array methods (splice)

let arr = [1, 2, 3];

arr.splice(1, 1); // начиная с позиции 1, удалить 1 элемент

console.log( arr ); // осталось [1, 3]
console.log( arr.length ); // 2

Удаление

Array methods (splice)

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

// удалить 3 первых элемента и заменить их другими
arr.splice(0, 3, 6, 7);

console.log( arr ) // теперь [6, 7, 4, 5]

Удаление и замена элиментов

Array methods (splice)

  • Метод arr.splice(str) – это универсальный «швейцарский нож» для работы с массивами. Умеет всё: добавлять, удалять и заменять элементы.
  • Так же метод splice мутирует исходный массив.

Array methods (slice)

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

arr.slice([start], [end])
let arr = [1, 2, 3, 4];

console.log( arr.slice(1, 3) ); // e,s (копирует с индекса 1 до 3 -> [2, 3])

Array methods (forEach)

arr.forEach(function(item, index, array) {
  // ... делать что-то с item
});
[1, 2, 3].forEach((item, index) => {
  console.log(`${item} имеет позицию ${index}`);
});

[1, 2, 3].forEach((item, index, array) => {
  console.log(`${item} имеет позицию ${index} в ${array}`);
});

Array methods (find and findIndex)

let users = [
  {id: 1, name: "Vic", age: 21},
  {id: 2, name: "Petya", age: 30},
  {id: 3, name: "Jon", age: 5}
];
let user = users.find(item => item.age === 5);

console.log(user.name); // Jon
let users = [
  {id: 1, name: "Vic", age: 21},
  {id: 2, name: "Petya", age: 30},
  {id: 3, name: "Jon", age: 5}
];
let userIndex = users.findIndex(item => item.age === 5);

console.log(userIndex); // 2, findIndex возвращает индекс

В основном применяем когда у нас массив обьектов

Array methods (filter)

let users = [
  {id: 1, name: "Vic", age: 21},
  {id: 2, name: "Petya", age: 30},
  {id: 3, name: "Jon", age: 5}
];
let userCollection = 
    users.filter(function (item) { return item.age < 30 });

console.log(userCollection); 
// [{id: 1, name: "Vic", age: 21}, {id: 3, name: "Jon", age: 5}]

filter возвращает новый массив из всех подходящих элементов

Array methods (map)

let users = [
  {id: 1, name: "Vic", age: 21},
  {id: 3, name: "Jon", age: 5}
];
let userCollection = users.map(item => item.age + 3);

console.log(userCollection); 
// [{id: 1, name: "Vic", age: 24}, {id: 3, name: "Jon", age: 8}]

Преобразование массива.

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

let lengths = ["1", "2", "3"].map((item) => Number(item));
console.log(lengths); // [1, 2, 3]

Array methods (split and join)

let arr = ['Vic', 'Petya', 'Jon'];
let str = arr.join(';'); // объединить массив в строку через ;

console.log( str ); // Vic;Petya;Jon

split разбивает строку на массив по заданному разделителю

let names = 'Vic, Petya, Jon';
let arr = names.split(', ');
console.log(arr); // ['Vic', 'Petya', 'Jon']


let arr2 = names.split(',');
console.log(arr2); //['Vic', ' Petya', ' Jon']

join создаёт строку из элементов arr

Array methods (reduce)

reduce похож на предыдущие методы, но он немного сложнее. Он используются для вычисления какого-нибудь единого значения на основе всего массива.

let value = arr.reduce(function(previousValue, item, index, array) {
  // ...
}, [initial]);
  • previousValue – результат предыдущего вызова этой функции, равен initial при первом вызове (если передан initial),
  • item – очередной элемент массива,
  • index – его индекс,
  • array – сам массив.

Array methods (reduce)

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

let sum = arr.reduce(function(sum, item) { return sum + item }, 0);

console.log(sum); // 15
let arr = [1, 2, 3, 4, 5];

let sum = arr.reduce((sum, item) => sum + item, 0);

console.log(sum); // 15

Array methods

By Oleg Rovenskyi

Array methods

  • 240