Задания (на выбор):
- Реализовать двусвязный список на классах
- Реализовать двусвязный список на замыканиях
- Реализовать двусвязный список на фабриках
- Добавить к двусвязному списку протокол iterable
- см. про
next()иSymbol.iterator
- см. про
- Сделать методы для обхода списка
.insert(index, data).delete(index, [count]).append(data).prepend(data).clone():list.compare(list):Boolean
- Сделать методы, аналогичные методам массива
.find(item => expression:Boolean):data.filter(item => expression:Boolean):list.indexOf(data):Number.includes(data):Boolean.map(item => f(item)):list- другие методы
- Декларативные аналоги
- аналог find:
.search(field, value):data - аналог filter:
.select({ field1: value1, field2: value2 }):list - алалог sort:
.order('field2'):list
- аналог find:
- Асинхронные аналоги
.find(item => expression:Boolean, data => {}).filter(item => expression:Boolean, data:list => {})- другие методы с колбеками, аналоги на Promise
- Реализовать циклический список
- Выполнить перечисленное выше для циклического списка
