Skip to content

Instantly share code, notes, and snippets.

@eonarik
Last active December 20, 2018 19:32
Show Gist options
  • Save eonarik/683be4b32e5175596dc7273732f19118 to your computer and use it in GitHub Desktop.
Save eonarik/683be4b32e5175596dc7273732f19118 to your computer and use it in GitHub Desktop.
js functions
const obj2get = function (obj) {
let data = []
for (let key in obj) {
let value = obj[key]
if (typeof value === 'object') {
assignValue(data, value, key)
} else {
data.push(`${key}=${value}`)
}
}
function assignValue (data, obj, key) {
for (let k in obj) {
let value = obj[k]
if (typeof value === 'object') {
assignValue(data, value, key + '[' + k + ']')
} else {
data.push(`${key}[${k}]=${value}`)
}
}
}
return data.join('&')
}
function number_format (number, decimals = 0, decPoint = '.', separator = ' ') {
number = (number + '').replace(/[^0-9+\-Ee.]/g, '')
let n = !isFinite(+number) ? 0 : +number
let prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
let sep = (typeof separator === 'undefined') ? ',' : separator
let dec = (typeof decPoint === 'undefined') ? '.' : decPoint
let s = ''
let toFixedFix = function (n, prec) {
let k = Math.pow(10, prec)
return '' + (Math.round(n * k) / k)
.toFixed(prec)
}
// Фиксим баг в IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n))
.split('.')
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep)
}
if ((s[1] || '')
.length < prec) {
s[1] = s[1] || ''
s[1] += new Array(prec - s[1].length + 1)
.join('0')
}
return s.join(dec)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment