164.93K
Категория: ПрограммированиеПрограммирование

Структуры данных. Set, map. Занятие №37

1.

ЗАНЯТИЕ №37
Структуры данных.
Set, map

2.

Структуры данных
Структура данных – способ организации данных.
В Javascript изначально были только 2 структуры – объект и массив.

3.

Доп. материалы
Итерируемыми объектами в Javascript называются такие объекты, у
которых есть возможность перебрать все их значения при помощи
итератора.
На работу с итераторами нацелен цикл for..of

4.

Пример
class StudentGrades {
constructor(id, subject, ...grades) {
this.id = id;
this.subject = subject;
this.length =
grades.length;
for (let i = 0; i < grades.length; i++) {
this[i] = grades[i];
}
}
[Symbol.iterator] = ()=>{
let current = 0;
return {
next: ()=> {
if (current < this.length) {
return {done: false, value: this[current++]}
} else {
return {done: true, value: undefined}
}
}
}
}
}

5.

Map
Map – это коллекция ключ/значение, как и Object. Но основное отличие в том,
что Map позволяет использовать ключи любого типа.
Методы и свойства:
map.set(key, value) – записывает по ключу key значение value.
map.get(key) – возвращает значение по ключу или undefined, если ключ key
отсутствует.
map.has(key) – возвращает true, если ключ key присутствует в коллекции,
иначе false.
map.delete(key) – удаляет элемент по ключу key.
map.clear() – очищает коллекцию от всех элементов.
map.size – возвращает текущее количество элементов.
map.keys() – возвращает итерируемый объект по ключам,
map.values() – возвращает итерируемый объект по значениям,
map.entries() – возвращает итерируемый объект по парам вида [ключ,
значение], этот вариант используется по умолчанию в for..of.

6.

Set
Методы, свойства:
set.add(value) – добавляет значение (если оно уже есть, то ничего не
делает), возвращает тот же объект set.
set.delete(value) – удаляет значение, возвращает true если value
было в множестве на момент вызова, иначе false.
set.has(value) – возвращает true, если значение присутствует в
множестве, иначе false.
set.clear() – удаляет все имеющиеся значения.
set.size – возвращает количество элементов в множестве.

7.

WeakMap, WeakSet
Работают также, как и Map и Set, но у WeakMap ключи должны быть
объектами, а в WeakSet можно сохранить только объект.
Как только объекты удаляются из памяти сборщиком мусора, они также
удаляются из WeakMap и WeakSet

8.

.forEach
Метод у Array, Map, Set.
Параметр, передающийся в метод – функция с параметрами: значение,
индекс, сам объект.
ВАЖНО! У Set нет индекса, поэтому второй параметр дублируется с
первым.

9.

Обработка исключений. try … catch
В процессе написания могут возникать различные ошибки. Условно их
можно разделить на 3 типа:
• Синтаксические ошибки
• Логические ошибки
• Исключения

10.

try … catch
Конструкция try catch используется для отлова ошибок.
try {
//блок кода, где может возникнуть ошибка
}
catch (err) {
//операции в случае ошибки. err - возникшая ошибка
}

11.

Свойства объекта ошибки
name
Имя ошибки.
message
Текстовое сообщение о деталях ошибки.

12.

Создание собственной ошибки
Вы можете создать собственную ошибку, с помощью конструкторов
классов ошибок (Error, SyntaxError, ReferenceError, TypeError и
другие)
let err = new Error("Возникла ошибка");
name - это имя класса, message - аргумент конструктора

13.

Проброс ошибки
Для проброса ошибки нужно использовать оператор throw
throw error

14.

finally
Дополнительный блок в try … catch. Выполняется всегда, даже если
выход в try … catch производится с помощью return

15.

Конец
English     Русский Правила