1 手写ajax
function callajax() {
var ajax = new XMLHttpRequest();
ajax.open(null);
ajax.send();
ajax.onreadystatechange = function(responseText) {
if(ajax.status == 4 || ajax.readyState == 200) {
console.log(responseText)
}
}
}
2 去重
function unique(arr) {
var newArr = []
for(var i=0; i< arr.length;i++) {
if(newArr.indexOf(arr[i]) < 0){
newArr.push(arr[i])
}
}
return newArr
}
3 排序
//选择排序 ,
function selectionSort(arr){
for (var i = 0; i < arr.length; i++) {
for (var j = i+1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
alert(selectionSort(arr))
//冒泡排序
function bubbleSort(arr){
for (var i = 0; i < arr.length-1; i++) {
for (var j = 0; j < arr.length-1-i; j++) {
//每次比较都会确定一个最小数,所以j < arr.length-1-i21
if (arr[j] > arr[j+1]) {
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
alert(bubbleSort(arr))
// 快速排序46
function quickSort(arr){
// 如果数组长度<=1 ,则直接返回48
if (arr.length <= 1) return arr;
//
var bisectionIndex = Math.floor(arr.length/2);
// 找基准,把基准从原数组中删除52
var bisection = arr.splice(bisection,1)[0];
// 定义作用数组
var left = [];
var right = [];
// 比基准小的放left ,比基准大的放right60
for (var i = 0; i < arr.length; i++) {
if (arr[i] <= bisection) {
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
//递归68
return quickSort(left).concat([bisection],quickSort(right));
}
alert(quickSort(arr))
4 格式化金钱
Number.prototype.formatMoney = function (places, symbol, thousand, decimal) {
places = !isNaN(places = Math.abs(places)) ? places : 2;
symbol = symbol !== undefined ? symbol : "¥";
thousand = thousand || ",";
decimal = decimal || ".";
var number = this,
negative = number < 0 ? "-" : "",
i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "",
j = (j = i.length) > 3 ? j % 3 : 0;
return symbol + negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : "");
};
var revenue = 12345678;
alert(revenue.formatMoney()); // ¥12,345,678.00
5统计字符串中字母个数或统计最多字母数。
function countCharNum() {
var str = "aaaabbbccccddfgh";
var obj = {};
for(var i=0;i<str.length;i++){
var v = str.charAt(i);
if(obj[v] && obj[v].value == v){
obj[v].count = ++ obj[v].count;
}else{
obj[v] = {};
obj[v].count = 1;
obj[v].value = v;
}
}
for(key in obj){
document.write(obj[key].value +'='+obj[key].count+' '); // a=4 b=3 c=4 d=2 f=1 g=1 h=1
}
}
6 转驼峰
function change(str) {
var arr = str.split('-');
for (var i = 1; i < arr.length; i++) {
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
}
console.log(arr.join(''));
}
change("get-element-by-id");