JSFiddle - React, Tailwind, and code Playground
by kentaromiura
JavaScript
(function (exports) {
var set = function(input){
var output;
if(Object.create){
output = Object.create(null);
for(var x in input){
if(input.hasOwnProperty(x)){
output[x] = input[x]
}
}
}else{
output = input;
}
return output;
}
var getMethods = function (data) {
return {
data: function(value){
if(arguments.length == 1){
data.data = value
}
return data.data
},
left: function (left) {
if (arguments.length == 1) {
data.left = left == null ? null : left instanceof Leaf? left: new Leaf(left)
}
return data.left
},
right : function (right) {
if (arguments.length == 1) {
data.right = right == null? null : right instanceof Leaf? right: new Leaf(right)
}
return data.right
},
plain : function () {
return set({
data: data.data,
left: data.left != null? data.left.plain() : null,
right: data.right != null? data.right.plain(): null
})
},
has: function(value){
var left, right
return data.data == value ||
!! (data.left && data.left.has(value)) ||
!! (data.right && data.right.has(value))
},
mirror: function(){
var result = new Leaf(data.data);
result.right( data.left && data.left.mirror() )
result.left( data.right && data.right.mirror() )
return result
},
length: function(){
return 1 + (data.left != null? this.left().length(): 0) + (data.right != null ? this.right().length(): 0);
...