97 lines
1.6 KiB
JavaScript
97 lines
1.6 KiB
JavaScript
/**
|
|
* Util Object
|
|
*
|
|
* Various object and string manipulation functions
|
|
*/
|
|
(function(){
|
|
|
|
var u = {
|
|
object_keys: function(o)
|
|
{
|
|
var keys = [],
|
|
k;
|
|
|
|
for(k in o)
|
|
{
|
|
if(o.hasOwnProperty(k))
|
|
{
|
|
keys.push(k);
|
|
}
|
|
}
|
|
|
|
return keys;
|
|
},
|
|
object_values: function(o)
|
|
{
|
|
var vals = [],
|
|
prop;
|
|
|
|
for(prop in o)
|
|
{
|
|
vals.push(o[prop]);
|
|
}
|
|
|
|
return vals;
|
|
},
|
|
object_merge: function()
|
|
{
|
|
|
|
},
|
|
reverse_key_sort: function(o)
|
|
{
|
|
//Define some variables
|
|
var keys = [],
|
|
num_keys = 0,
|
|
new_o = {},
|
|
i,
|
|
k,
|
|
x;
|
|
|
|
//Extract the keys
|
|
keys = this.object_keys(o);
|
|
|
|
//Sort the keys
|
|
keys.sort(function (b, a) {
|
|
|
|
var aFloat = parseFloat(a),
|
|
bFloat = parseFloat(b),
|
|
aNumeric = aFloat + '' === a,
|
|
bNumeric = bFloat + '' === b;
|
|
|
|
if (aNumeric && bNumeric)
|
|
{
|
|
return aFloat > bFloat ? 1 : aFloat < bFloat ? -1 : 0;
|
|
}
|
|
else if (aNumeric && !bNumeric)
|
|
{
|
|
return 1;
|
|
}
|
|
else if (!aNumeric && bNumeric)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
return a > b ? 1 : a < b ? -1 : 0;
|
|
});
|
|
|
|
//cache object/array size
|
|
num_keys = keys.length;
|
|
|
|
//Recreate the object/array
|
|
for(i=0; i < num_keys; i++)
|
|
{
|
|
k = keys[i];
|
|
new_o[k] = o[k];
|
|
}
|
|
|
|
return new_o;
|
|
},
|
|
str_trans: function(string, from, to)
|
|
{
|
|
|
|
}
|
|
};
|
|
|
|
//Add it to the $_ object
|
|
$_.ext('util', u);
|
|
}()); |