JSFiddle - React, Tailwind, and code Playground
by evan
HTML
<input id="addvalue" type="text" />
<button id="addbutton">add</button>
<button id="testbutton">test</button>
<button id="resetbutton">reset</button>
<div id="bitarray"></div>
CSS
#bitarray {
margin-top: 3px;
}
#bitarray span {
display: inline-block;
width: 20px;
height: 20px;
font-size: 18px;
line-height: 20px;
font-family: monaco;
border: 1px solid #666;
margin: 1px;
text-align: center;
}
.one {
background: #eee;
}
.hilite {
color: red;
background: #fdd;
}
JavaScript
/* Lettering.JS 0.6.1 by Dave Rupert - http://daverupert.com */
(function($){function injector(t,splitter,klass,after){var a=t.text().split(splitter),inject='';if(a.length){$(a).each(function(i,item){inject+='<span class="'+klass+(i+1)+'">'+item+'</span>'+after});t.empty().append(inject)}}var methods={init:function(){return this.each(function(){injector($(this),'','char','')})},words:function(){return this.each(function(){injector($(this),' ','word',' ')})},lines:function(){return this.each(function(){var r="eefec303079ad17405c889e092e105b0";injector($(this).children("br").replaceWith(r).end(),r,'line','')})}};$.fn.lettering=function(method){if(method&&methods[method]){return methods[method].apply(this,[].slice.call(arguments,1))}else if(method==='letters'||!method){return methods.init.apply(this,[].slice.call(arguments,0))}$.error('Method '+method+' does not exist on jQuery.lettering');return this}})(jQuery);
var pad = function (str, max) {
return str.length < max ? pad("0" + str, max) : str;
}
var hashFunctions = [];
// length
hashFunctions.push(function (v) {return v.length;});
// vowels
hashFunctions.push(function (v) {return (v.match(/a|e|i|o|u/g) || "").length});
// character codes
hashFunctions.push(function (v) {
var r = 0, j = 0;
for (j; j < v.length; j++) {
r += v.charCodeAt(j);
}
return r;
});
var bitArray = 0;
var n = 24;
var lastCalced = [];
var calcHashes = function (value) {
var bitTemp = 0, r, arr = [];
$.each(hashFunctions, function (idx, fn) {
r = fn(value) % n;
arr.push(r);
bitTemp = bitTemp | Math.pow(2, r);
});
lastCalced = arr;
return [bitTemp, arr];
};
var add = function (value) {
bitArray = bitArray | calcHashes(value)[0];
};
var test = function (value) {
var tested = calcHashes(value);
alert(tested & bitArray);
}
var print = function () {
...