Code Monkey home page Code Monkey logo

tisnthings's Introduction

tisnthings.js

Smallish set of things I often use. Favors brevity.

Example: type checking with tis(a,b) (as in "type is"):

tis(x,"")//is x a string?
tis(x,[])//is x an array?
tis(x,aFxn)//is x a function?
tis(x,aPromise)//is x a promise?
tis(x,/ /)//is x regex?
tis(x,new CustomThing)//is x a CustomThing?

tis works by constructor comparisons, with some quick checks first, so:

tis(NaN,1)//false
tis(NaN,NaN)//true!

type(x) will give you a string of x a bit more distinctly than typeof. ([] is 'array'!)

Or a quick way to guess random numbers:

g()//plain Math.random()
g(1)// 50 / 50 chance truthy
g(100)//randomly pick an integer between 0 & 100
g(50,60)//randomly pick an integer between 50 & 60
g(50,60,true)//pick a floaty decimal between 50 & 60
g([2,3,6,9])//randomly return a value from the array

array2obj(), or shorthand a2o(array[,justBeTruthy[,specificValueKey]]), allowing easy preprocessing of []s into O(1)-accessible {} properties instead of using [].indexOf:

a2o([1,2,3,4],"just be truthy")//{1: 1, 2: 1, 3: 1, 4: 1} //values all a truthy 1
a2o([1,2,3,4])                 //{1: 0, 2: 1, 3: 2, 4: 3} //values ascending
a2o([{k:1},{k:5},{z:12}],0,'k') //{1:{k:1},5:{k:5},undefined:{z:12}} //key by k, if value has it

and for symmetry's sake (albeit less used), obj2array(), or o2a(object[,callKey]):

o2a({f:3,k:9,e:{Z:"Q"}})     //[{val:3,key:"f"},{val:9,key:"k"},{val:{Z:"Q"},key:"e"}]
o2a({f:3,k:9,e:{Z:"Q"}},"W") //[{val:3,W:"f"},{val:9,W:"k"},{val:{Z:"Q"},W:"e"}]

Some string functions:

//what a human might like seeing:
"query_select ColumnName".pretty()//"Query Select Column Name"
//machine a string to something simpler:
"a Goofy nglés sentence!!(#&---".machine()//"a_goofy_ngl_s_sentence"

code2str(55356,57194,9786)//cookie + smiley face characters
"doc brown".toProperCase()//"Doc Brown"
"Something Else".decapitalize()//"something Else"
"convert into method name".toMethodName()//"convertIntoMethodName"
"somethingCamelCased".camelSplit()//["something", "Camel", "Cased"]
"pass".replaceAt(0,"b")//"bass"
x.in("a b c")//true if x=='a' || x=='b' || x=='c' (case insensitive)

Some constants & simple functions for easy reading:

var aDay=24*3600*1000
  ,aPromise=new Promise(function(){})
  ,aFxn=function(){}
  ,noop=function(){}
  ,asc =function(a,b){return a<b?1:-1}
  ,desc=function(a,b){return a>b?1:-1}
  ,lexicalAsc=function(a,b){return a>b?1:a==b?0:-1}

Sometimes it's worth insisting you have an array:

//x might not be an array
insistArray(x)//but it definitely is now
    .map(x=>x*x)

Give a function some inputs, but don't execute just yet:

var gp=g.pass(1,10)
//...later
gp()//g(1,10)

And all Math.* functions are brought into the global scope.

max(1,10)
sin(PI)
tan(PI/2)
///etc

tisnthings's People

Contributors

jnvm avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.