UNPKG

@bookbox/view-html

Version:

Bookbox view for html

56 lines (55 loc) 1.23 kB
function getItem(data) { return { data, next: null, prev: null, }; } export function addTail(list, data) { const item = getItem(data); const oldTail = list.tail; if (oldTail) { oldTail.next = item; item.prev = oldTail; } list.tail = item; } export function addHead(list, data) { const item = getItem(data); const oldHead = list.head; if (oldHead) { oldHead.prev = item; item.next = oldHead; } list.head = item; } export function removeHead(list) { const oldHead = list.head; if (oldHead) { const currentHead = oldHead.next; if (currentHead) { currentHead.prev = null; } list.head = currentHead; } } export function removeTail(list) { const oldTail = list.tail; if (oldTail) { const currentTail = oldTail.prev; if (currentTail) { currentTail.next = null; } list.tail = currentTail; } } export function findItem(list, find) { let current = list.head; while (current !== null) { if (find(current.data)) { return current; } current = current.next; } return null; }