Задания (на выбор):
- Реализовать двусвязный список на классах
- Реализовать двусвязный список на замыканиях
- Реализовать двусвязный список на фабриках
- Добавить к двусвязному списку протокол 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
- Реализовать циклический список
- Выполнить перечисленное выше для циклического списка