Skip to content

Instantly share code, notes, and snippets.

classDiagram
    class DataLayer{
        +Map<key:String, AbstractDataSet> DataSet
        
    }
function sum(a: number, b: number): number {
return a + b;
}
function ded(a: number, b: number): string {
return (a * b).toFixed(2);
}
type CF = (...args: any[]) => any;
type LastFnReturnType<T extends any[]> = ReturnType<T[0]>;
// recursive
function tick(cnt = 0, duration=1000, callback:(cnt:number)=>void ){
if(cnt <= 0) return;
setTimeout(() => {
callback(cnt);
tick(--cnt, duration, callback);
}, duration);
}
// async
@ua9msn
ua9msn / ampm224.js
Last active April 20, 2020 07:44
AMPM -> 24H
function ampm224(s) {
const ampm = s.substr(-2) === 'PM';
const [hh, mm, ss] = s.split(':').map(x => parseInt(x, 10) );
const HH = ampm ? hh%12 + 12 : hh%12
return [HH, mm, ss]
.map( x => x.toString().padStart(2, '0') )
.join(':')
}
//['12:00:00AM','12:00:00PM','07:10:00PM'].map( timeConversion )
//["00:00:00", "12:00:00", "19:10:00"]
function HammingDistance(a, b){
var HD = 0;
var n = (a ^ b);
// console.log(a.toString(2));
// console.log(b.toString(2));
// console.log(n.toString(2));
while(n){
HD = HD + n % 2;
n = n >> 1;
}
@ua9msn
ua9msn / gist:2932e0872f4f4501e015c0377d107d05
Last active March 27, 2019 10:23
Array sorting in according to another array
/*
Sort array and set items from def at the beginning
WORKS CORRECTLY FOR UNIQ ARRAYS ONLY!
*/
const x = ['a','s','d','f','g','j','h','k','p']; // desired order
const y = ['a','h','f','y','d','q','p','k']; // what we have
const z1 = y.concat().sort( (a,b) => x.indexOf(a) - x.indexOf(b));
for (var i = 0; i < 10; i++) {
var element = document.createElement('button');
element.innerHTML = '#' + i;
document.body.appendChild(element);
element.onclick = function(){
console.log(i);
}
}
@ua9msn
ua9msn / boolSort
Created August 5, 2016 13:51
compare any type as booleans
boolSort: function(a, b, dt, sign){
return (!!a^0 - !!b^0) * sign;
},
@ua9msn
ua9msn / gist:7fdb522fd5c15418451dec56d2fd09a5
Created April 19, 2016 14:22
dirty way to see all elements with applied fontsize
var fontSZ = '14px'
var nl = document.querySelectorAll('*');
var szs = {};
for(var i = 0; i < nl.length; i++){
var tagName = nl.item(i).tagName;
if( (tagName !='SCRIPT') && (tagName != 'LINK') && (tagName != 'STYLE') ){
var sz = window.getComputedStyle(nl.item(i))['fontSize'];
if(sz === fontSZ){
function flatten(a){
return a.reduce(function(p, c){
if(Array.isArray(c)) {
return p.concat(flattern(c));
} else {
return p.concat(c);
}
}, []);
}