Name | Link | Description |
---|---|---|
was.js | was.js | General Purpose Library |
The following code:
// attach the .equals method to Array's prototype to call it on any array Array.prototype.equals = function (array) { // if the other array is a falsy value, return if (!array) return false; // compare lengths - can save a lot of time if (this.length != array.length) return false; for (var i = 0, l=this.length; i < l; i++) { // Check if we have nested arrays if (this[i] instanceof Array && array[i] instanceof Array) { // recurse into the nested arrays if (!this[i].equals(array[i])) return false; } else if (this[i] != array[i]) { // Warning - two different object instances will never be equal: {x:20} != {x:20} return false; } } return true; }
will add an .equals
call to arrays so you can use it as:
var a = [ "a", "b" ]; var b = [ "a", "c" ]; alert(a.equals(b));
Following the formula to linearly map a value in a range to another range, the javascript variation thereof can be found here.
/*************************************************************************/ /* Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 */ /*************************************************************************/ function wasMapValueToRange(value, xMin, xMax, yMin, yMax) { return yMin + ( ( yMax - yMin ) * ( value - xMin ) / ( xMax - xMin ) ); }
function wasRGBToHex(r, g, b) { return "#" + ( (1 << 24) + (r << 16) + (g << 8) + b ).toString(16).slice(1); }
where r
, g
and b
are in the range .
function wasHexToRGB(hex) { var shortRegEx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; hex = hex.replace( shortRegEx, function(m, r, g, b) { return r + r + g + g + b + b; } ); var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null; }
where hex
can be in long or short CSS notation.