common常用方法和部分算法
var commonindex = function() {};
commonindex.prototype = {
ajaxRequest: function(request) {
$.ajax({
type: 'POST',
url: request.url,
data: request.data,
// dataType: 'json',
// contentType: "application/json",
success: function(data) {
//console.log(data);
request.handler_success(data);
},
error: function(xhr, type) {
request.handler_ex(xhr);
}
});
},
toast: function(msg) {
var str = "<div class='toast' style='display:none'>" + msg + "</div>";
$('body').append(str);
$('.toast').stop().fadeIn(100).delay(1000).fadeOut(400); //fade out after 3 seconds
setTimeout(function() {
$('.toast').remove();
}, 3000);
},
reset: function(ok, cannel) {
$("#toggleCSS").attr("href", "../../style/alertify.default.css");
alertify.set({
labels: {
ok: ok,
cancel: cannel
},
delay: 5000,
buttonReverse: false,
buttonFocus: "ok"
});
},
getChannelDomain: function(type) {
switch (type) {
case 'meizu':
return config.caiqr_domain;
break;
case 'caiqiu':
return config.caiqr_domain_mobile;
break;
}
},
getReferrer: function() {
var referrer = '';
try {
referrer = window.top.document.referrer;
} catch (e) {
if (window.parent) {
try {
referrer = window.parent.document.referrer;
} catch (e2) {
referrer = '';
}
}
}
if (referrer === '') {
referrer = document.referrer;
}
return referrer;
},
// 数组内排序
systemSort: function(arr) {
return arr.sort(function(a, b) {
return a - b;
});
},
// 从指定数组中随机n个数字
getArrayItems: function(arr, num) {
//新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;
var temp_array = new Array();
arr.forEach(function(item) {
temp_array.push(item);
});
//取出的数值项,保存在此数组
var return_array = new Array();
for (var i = 0; i < num; i++) {
//判断如果数组还有可以取出的元素,以防下标越界
if (temp_array.length > 0) {
//在数组中产生一个随机索引
var arrIndex = Math.floor(Math.random() * temp_array.length);
//将此随机索引的对应的数组元素值复制出来
return_array[i] = temp_array[arrIndex];
//然后删掉此索引的数组元素,这时候temp_array变为新的数组
temp_array.splice(arrIndex, 1);
} else {
//数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项.
break;
}
}
return return_array;
},
// ajax get json
getJsonRequest: function(request) {
$.getJSON(request.url, function(responsedata, status, xhr) {
console.log('status======', status);
if (status == 'success') {
request.handler_success(responsedata);
} else {
request.handler_ex(xhr);
}
});
},
// 生成随机数函数
randomFn: function(max, min) {
return parseInt(Math.random() * (max - min + 1) + min, 10);
},
// 从max -min 中挑选n个不重复的数字
randomNrepatFn: function(n, min, max) {
var arr = [];
for (i = 0; i < n; i++) {
arr[i] = parseInt(Math.random() * (max - min + 1) + min);
for (j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
i = i - 1;
break;
}
}
}
return arr;
},
//倒计时插件,doc元素节点,time:倒计时时间秒数,fun:回调函数,计时完成后回调该函数
getCountdown: function(doc, time, fun) {
if (doc) {
var minnew = Math.floor(time / 60);
var secnew = Math.floor(time % 60);
var hournew = 0;
if (time > 60) {
minnew = parseInt(time / 60);
if (minnew > 60) {
hournew = parseInt(min / 60);
minnew = parseInt(min % 60);
} else {
hournew = 0;
}
}
// 单位数加0
if (hournew < 10) {
hournew = '0' + hournew;
}
if (secnew < 10) {
secnew = '0' + secnew;
}
if (minnew < 10) {
minnew = '0' + minnew;
}
// 展示问题
if (hournew > 0 && minnew > 0) {
doc.innerText = hournew + ":" + minnew + ":" + secnew;
} else if (hournew == 0 && minnew > 0) {
doc.innerText = minnew + ":" + secnew;
} else if (hournew == 0 && minnew == 0) {
doc.innerText = '00:' + secnew;
}
}
var timer = setInterval(function() {
var min = Math.floor(time / 60);
var sec = Math.floor(time % 60);
var hour = 0;
if (time > 60) {
min = parseInt(time / 60);
if (min > 60) {
hour = parseInt(min / 60);
min = parseInt(min % 60);
} else {
hour = 0;
}
}
time--;
// 单位数加0
if (hour < 10) {
hour = '0' + hour;
}
if (sec < 10) {
sec = '0' + sec;
}
if (min < 10) {
min = '0' + min;
}
// 展示问题
if (hour > 0 && min > 0) {
doc.innerText = hour + ":" + min + ":" + sec;
} else if (hour == 0 && min > 0) {
doc.innerText = min + ":" + sec;
} else if (hour == 0 && min == 0) {
doc.innerText = '00:' + sec;
}
// 执行回调函数
if (time <= 0) {
fun();
clearInterval(timer);
return;
}
}, 1000);
},
// 大数组内进行排列组合
comarray: function(arr) {
var sarr = [
[]
];
for (var i = 0; i < arr.length; i++) {
var tarr = [];
for (var j = 0; j < sarr.length; j++)
for (var k = 0; k < arr[i].length; k++) {
tarr.push(sarr[j].concat(arr[i][k]));
}
sarr = tarr;
}
return sarr;
},
//大写转化为小写
toLowerCase: function(comeStr) {
return comeStr.toLowerCase()
}
};
//数组的组合
Array.prototype.combinate = function(iItems, aIn) {
if (!aIn) {
var aIn = new Array();
this.combinate.aResult = new Array();
}
for (var i = 0; i < this.length; i++) {
var a = aIn.concat(this[i]);
var aRest = this.concat();
aRest.splice(0, i + 1);
if (iItems && iItems - 1 <= aRest.length) {
aRest.combinate(iItems - 1, a);
if (iItems == 1) this.combinate.aResult.push(a);
}
}
return this.combinate.aResult;
};
Array.prototype.add = function(number) {
return this.map(function(item) {
return item + number;
});
};
//根据域名修改渠道id
var commonObject = new commonindex();
commonindex.prototype.ajaxRequest = function(request) {
if (window.location.href.indexOf(commonObject.getChannelDomain('meizu')) > -1) {
request.data.channel = "meizuh5";
request.data.client_type = '4';
}
if (window.location.href.indexOf(commonObject.getChannelDomain('caiqiu')) > -1) {
request.data.channel = "lingshengcaijiandashi01";
}
$.ajax({
type: 'POST',
url: request.url,
data: request.data,
// dataType: 'json',
// contentType: "application/json",
success: function(data) {
//console.log(data);
request.handler_success(data);
},
error: function(xhr, type) {
request.handler_ex(xhr);
}
});
};
common常用方法和部分算法的更多相关文章
- POJ 1330 Nearest Common Ancestors (LCA,倍增算法,在线算法)
/* *********************************************** Author :kuangbin Created Time :2013-9-5 9:45:17 F ...
- B - Common Divisors (codeforces)数论算法基本定理,唯一分解定理模板
You are given an array aa consisting of nn integers. Your task is to say the number of such positive ...
- poj1330Nearest Common Ancestors 1470 Closest Common Ancestors(LCA算法)
LCA思想:http://www.cnblogs.com/hujunzheng/p/3945885.html 在求解最近公共祖先为问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好 ...
- 动态规划 算法(DP)
多阶段决策过程(multistep decision process)是指这样一类特殊的活动过程,过程可以按时间顺序分解成若干个相互联系的阶段,在每一个阶段都需要做出决策,全部过程的决策是一个决策序列 ...
- 【图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法
简介: 本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD).绝对误差和算法(SAD).误差平方和算法(SSD).平均误差平方和算法(MSD).归一化积相关算法(NCC).序贯相似性检测算 ...
- 【算法导论】最小生成树之Kruskal法
在图论中,树是指无回路存在的连通图.一个连通图的生成树是指包含了所有顶点的树.如果把生成树的边的权值总和作为生成树的权,那么权值最小的生成树就称为最小生成树.因为最小生成树在实际中有很多应用,所以我们 ...
- 排序算法Java代码实现(一)—— 选择排序
以下几篇随笔都是记录的我实现八大排序的代码,主要是贴出代码吧,讲解什么的都没有,主要是为了方便我自己复习,哈哈,如果看不明白,也不要说我坑哦! 本片分为两部分代码: 常用方法封装 排序算法里需要频繁使 ...
- 剖析ironic
关键技术 在安装操作系统时需要存储介质来存储系统镜像.需要控制物理机开关机,在网络部署环境中还需要预启动环境. PXE (预启动环境) IPMI(电源管理) iSCSI(存储) 什么是PXE PXE( ...
- coursera机器学习-聚类,降维,主成分分析
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
随机推荐
- HDOJ(HDU) 2061 Treasure the new start, freshmen!(水题、)
Problem Description background: A new semester comes , and the HDU also meets its 50th birthday. No ...
- Java---IO加强(1)
RandomAccessFile ★随机访问文件,自身具备读写的方法. new RandomAccessFile()之后,若文件不存在会自动创建,存在则不创建.--该类其实内部既封装了字节输入流,又封 ...
- HDU 4828 - Grids (Catalan数)
题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=4828 Catalan数的公式为 C[n+1] = C[n] * (4 * n + 2) / (n ...
- Maven搭建环境(Linux& Windows)
Linux下安装Maven 1.前提条件: 1)下载并安装好JDK .在终端输入命令“java -version”,如果出现类似如下信息说明JDK安装成功. $ java -version java ...
- X265编译中C2220错误的解决办法
x265编译过程中 C2220错误:根本原因是代码是英文代码页,而我们的操作系统中使用的是中文代码页: 解决办法1 逐个文件进行格式转换,我在ubuntu下用iconv命令试过,没成功: 解决办法2 ...
- Object-C 对象 (创建/销毁 对象)-- 笔记
创建/销毁 对象: Dog *dog = [Dog alloc]; // 通过alloc创建dog一个这样的对象, alloc相对于C语言中的new // *号既表示指针,也表示引用 初始化构造函数 ...
- Django 邮件推送 解决附件中文名字乱码
Django邮件功能,详情可看官方文档(https://docs.djangoproject.com/en/1.10/topics/email/). 最近做这个功能时遇到的问题,发送附件,收到后中文名 ...
- ssh远程连接不上ubuntu
问题描述: 1.ubuntu安装了openssh-server,启动了ssh 守护进程,使用端口22 2.在本机可以 ssh 127.0.0.1 连接 3.通过ssh远程(比如用putty 或crt) ...
- Django URL传递参数的方法总结
1 无参数情况 配置URL及其视图如下: 1 2 3 4 (r'^hello/$', hello) def hello(request): return HttpResponse("He ...
- windows下Socket链接溢出
最近在windows下使用通过多线程使用jdbc操作数据库,在线程数设置为5,并且每个线程执行完成后Sleep(1000),在这种情况下,竟然还会报错: java.net.SocketExceptio ...