function isArray(arr) {
return Object.prototype.toString.call(arr) === '[object Array]';
}
function isFunction(fn) {
return Object.prototype.toString.call(fn) === '[object Function]';
return fn.constructor == Function;
return fn instanceof Function;
return typeof(fn)==function;
}
function cloneObject(obj) {
if (obj == null || typeof obj != "object") return obj;
if (obj instanceof Date) {
var copy = new Date();
copy.setTime(obj.getTime());
return copy;
}
if (obj instanceof Array) {
var copy = [];
for (var i = 0; i < obj.length; i++) {
copy[i] = cloneObject(obj[i]);
}
return copy;
}
if (obj instanceof Object) {
var copy = {};
for (var attr in obj) {
if (obj.hasOwnProperty(attr)) {
copy[attr] = cloneObject(obj[attr]);
}
}
return copy;
}
throw new Error("Unable to copy obj! Its type isn't supported.");
}
var srcObj = {
a: 1,
b: {
b1: ["hello", "hi"],
b2: "JavaScript"
}
};
var abObj = srcObj;
var tarObj = cloneObject(srcObj);
srcObj.a = 2;
srcObj.b.b1[0] = "Hello";
console.log(abObj.a);
console.log(abObj.b.b1[0]);
console.log(tarObj.a);
console.log(tarObj.b.b1[0]);
function uniqArray(arr) {
var arr2=[];
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr2.length;j++){
if(arr[i]==arr[j]){
break;
}
}
if(j==arr2.length){
arr2.push(arr[i]);
}
}
return(arr2);
}
function trim(str){
return str.replace(/^[" "||" "]*/,"").replace(/[" "|" "]*$/, "");
}
function output(item, index) {
console.log(index + ': ' + item)
}
function each(arr,output){
for(var i=0;i<arr.length;i++){
var item=arr[i];
var index=i;
output(item,index);
}
}
Object.prototype.each=function(output){
for(var i=0;i<this.length;i++){
var item=this[i];
var index=i;
output(item,index);
}
}
function getObjectLength(obj){
var i=0;
for( var attr in obj){
if(obj.hasOwnProperty(attr)){
i++;
}
}
console.log(i);
}
function isEmail(emailStr){
var reg=/^[a-zA-Z0-9]+([._-]*[a-zA-Z0-9]*)*@[a-zA-Z0-9]+.[a-zA-Z0-9{2,5}$]/;
var result=reg.test(emailStr);
if(result){
alert("ok");
}else{
alert("error");
}
}
function isMobilePhone(phone){
var reg=/^1\d{10}$/;
if(reg.test(phone)){
alert('ok');
}else{
alert('error');
}
}
function addClass(element, newClassName){
if (!element.className){
element.className = newClassName;
}
var reg=new RegExp('(\\s|^)'+newClassName+'(\\s|$)');
var str=element.className.toString();
var bool=reg.test(str);
if(bool){
return;
}
else {
aa = element.className;
aa+= " ";
aa+= newClassName ;
element.className = aa;
}
}
function removeClass(element, oldClassName){
var reg=new RegExp('(\\s+|^)'+oldClassName+'(\\s+|$)');
console.log(reg.test(element.className));
if(reg.test(element.className)){
element.className = element.className.replace(reg,' ');
}
}
function isSiblingNode(element, siblingNode){
var arr=element.parentNode.childNodes;
for(var i=0;i<arr.length;i++){
if(arr[i]==siblingNode){
return(console.log('1'));
}
}
return(console.log('2'));
}
function getPosition(element){
var offsety=0;
offsety+=element.offsetTop;
var offsetx=0;
offsetx+=element.offsetLeft;
if(element.offsetParent!=null){
getPosition(element.offsetParent);
}
return {Left:offsetx,Top:offsety};
}