Skip to content

Instantly share code, notes, and snippets.

@PieterScheffers
Created May 4, 2015 15:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PieterScheffers/6c95da32c091b8eb287d to your computer and use it in GitHub Desktop.
Save PieterScheffers/6c95da32c091b8eb287d to your computer and use it in GitHub Desktop.
Javascript - Lib
var lib = (function(window) {
"use strict";
var lib = {};
lib.array = (function() {
var a = {};
a.select = function arraySelect(arr, callback) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if( callback(arr[i]) ) {
newArr.push(arr[i]);
}
}
return newArr;
};
a.map = function arrayMap(arr, callback) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
newArr.push( callback(arr[i]) );
}
return newArr;
};
a.removeDuplicates = function removeDuplicates(arr) {
};
a.keys = (function arrayKeys(arr) {
if ( Object.keys ) {
return arr.keys;
} else {
return (function() {
var hasOwnProperty = Object.prototype.hasOwnProperty,
hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),
dontEnums = [
'toString',
'toLocaleString',
'valueOf',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'constructor'
],
dontEnumsLength = dontEnums.length;
return function(obj) {
if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
throw new TypeError('Object.keys called on non-object');
}
var result = [], prop, i;
for (prop in obj) {
if (hasOwnProperty.call(obj, prop)) {
result.push(prop);
}
}
if (hasDontEnumBug) {
for (i = 0; i < dontEnumsLength; i++) {
if (hasOwnProperty.call(obj, dontEnums[i])) {
result.push(dontEnums[i]);
}
}
}
return result;
};
}());
}
})();
return a;
})();
lib.browser = (function(window) {
var b = {};
b.addEvent = function addEvent(element, type, handler) {
// IE8 and below --> no event parameter, window.event has the last event
var callback = function(event) {
event = event || window.event;
handler.call(element, event);
};
// IE8 and below --> no addEventListener but attachEvent
if (element.addEventListener) {
element.addEventListener(type, callback, false);
}else if (element.attachEvent) {
element.attachEvent('on' + type, callback);
} else {
element['on' + type] = callback;
}
};
b.dom = (function() {
var d = {};
d.empty = function empty(element) {
while (element.firstChild) {
element.removeChild(element.firstChild);
}
};
return d;
})();
return b;
})(window);
lib.util = (function() {
var u = {};
var TYPES = {
array: '[object Array]',
string: "[object String]",
object: "[object Object]",
date: "[object Date]",
regexp: "[object RegExp]",
number: "[object Number]"
};
u.isDefined = function isDefined(variable) {
return (typeof variable !== 'undefined' && variable !== null);
};
u.def = function def(variable, alt) {
return isDefined(variable) ? variable : alt;
};
u.varType = function type(variable) {
return Object.prototype.toString.call(variable);
};
u.is = function is(type, variable) {
return type === varType(variable);
};
u.isObject = function isObject(variable) {
return is(TYPES.object, variable);
};
u.isString = function isString(variable) {
};
u.isDate = function isDate(variable) {
};
u.isRegExp = function isRegExp(variable) {
return is(TYPES.regexp, variable);
};
u.isArray = function isArray(variable) {
return is(TYPES.array, variable);
};
u.isNumber = function isNumber(variable) {
return is(TYPES.number, variable);
};
u.isFloat = function isFloat(variable) {
return +variable === variable && (!isFinite(variable) || !! (variable % 1));
};
u.isInt = function isInt(variable) {
return variable === +variable && isFinite(variable) && !(variable % 1);
};
return u;
})();
lib.
return lib;
})(window);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment