Skip to content

Instantly share code, notes, and snippets.

@roneigebert
Last active March 30, 2019 22:24
Show Gist options
  • Save roneigebert/f329d4946536bd15016e929d9ee6c07b to your computer and use it in GitHub Desktop.
Save roneigebert/f329d4946536bd15016e929d9ee6c07b to your computer and use it in GitHub Desktop.
JS utilities
// Get query parameters with js
var QueryParameters = {
all: function() {
var result = {}
location.search.substr(1).split("&").forEach(function (item) {
var keyValue = item.split("=")
result[keyValue[0]] = decodeURIComponent(keyValue[1])
})
return result
},
get: function(name) {
var params = this.all()
return params[ name ]
}
}
var sorter = {
sortReverse: function( l, k ){
return this.sort( l, k, true )
},
sort: function( l, k, r ){
if ( !l || !l.sort || !k )
return l
var orderFields = typeof k === 'string' ? [k] : k
return l.sort(function(a, b){
for ( var i=0; i<orderFields.length; i++ ){
var f = orderFields[i]
var v1 = a[f], v2 = b[f]
if ( v1 === v2 ) continue
var rr = typeof v1 === 'boolean' ? !r : r
return (rr ? v1 < v2 : v1 > v2) ? 1 : -1
}
return 0
})
}
}
@roneigebert
Copy link
Author

query-params.js

Usage examples:

/** URL http://localhost/?myParam=10&mySecondParam=20 */

var my_param = QueryParameters.get( "myParam" )
console.log( my_param )
// output: "10"

var all_params = QueryParameters.get( "myParam" )
console.log( all_params )
// output: {"myParam": "10","mySecondParam":"20"}

sorter.js

Usage examples:

var list = [{"name": "Maria"}, {"name": "Andre"}, {"name": "Jose"}]
var result = sorter.sort( list, "name" )
console.log( result )
// output: [{"name": "Andre"}, {"name": "Jose"}, {"name": "Maria"}]

var list = [{"name": "Maria"}, {"name": "Andre"}, {"name": "Jose"}]
var result = sorter.sortReverse( list, "name" )
console.log( result )
// output: [{"name": "Maria"}, {"name": "Jose"}, {"name": "Andre"}]

var list = [{"name": "Maria", "age": "40"}, {"name": "Andre", "age": "50"}, {"name": "Andre", "age": "40"}]
var result = sorter.sort( list, ["name", "age"] )
console.log( result )
// output: [ {"name": "Andre", "age": "40"}, {"name": "Andre", "age": "50"},{"name": "Maria", "age": "40"}]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment