LinkCreator
by evgkch
Babel + JSX
class Operator {
set next(next) {
if (!!next)
this._next.push(next);
}
get next() {
return this._next;
}
set prev(prev) {
if (!!prev)
this._prev.push(prev);
}
get prev() {
return this._prev;
}
constructor({ next, prev }) {
this._next = [];
this._prev = [];
this.next = next;
this.prev = prev;
}
}
class LinkedNode extends Operator {
static create(prevNode, nextNode) {
}
constructor({ node, prev, next }) {
super({ prev, next })
this.node = node;
}
}
class LinkCreator {
create(prev, next) {
if (typeof next == 'object')
{
if (Array.isArray(next))
return nextNode.map(node => {
return LinkedNode.create(nextNode, node);
});
else
{
const node = new LinkedNode(nextNode);
if (Array.isArray(prevNode))
prevNode.forEach(prevNode => prevNode.next = node);
else
prevNode.next = node;
return node;
}
}
}
}
class LinkedList extends Operator {
static create() {
}
constructor() {
}
}
function create(data) {
return data.map((item, i) => {
return Node.create(item, data[i + 1])
})
}
const list = [{},{},{},{}];
console.log(create(list))