//数组去重
Array.prototype.unique1=function(){
Array.prototype.unique1=function(){
var arr2 = [];
for (var i=0;i<arr2.length;i++) {
if (arr2.indexOf(this[i] == -1)) {
arr2.push(this[i]);
}
}
return arr2;
}
var array1=[1,2,3,4,5,6,5,4,3,2,1];
alert(array1.unique1());
//冒泡排序
var time=0;
var bubbleSort =function(arr){
for (var i=0;i<arr.length-1;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;
}
//console.log("第"+(++time)+"次排序后:"+arr);
}
}
return arr;
}
var arr1=[1,2,3,4,5,6,5,4,3,2,1]
console.log("最终结果为:"+bubbleSort(arr1));
//快速排序
var times=0;
var quickSort=function(arr){
//如果数组长度小于等于1无需判断直接返回即可
if(arr.length<=1){
return arr;
}
var midIndex=Math.floor(arr.length/2);//取基准点
var midIndexVal=arr.splice(midIndex,1);//取基准点的值,splice(index,1)函数可以返回数组中被删除的那个数arr[index+1]
var left=[];//存放比基准点小的数组
var right=[];//存放比基准点大的数组
//遍历数组,进行判断分配
for(var i=0;i<arr.length;i++){
if(arr[i]<midIndexVal){
left.push(arr[i]);//比基准点小的放在左边数组
}
else{
right.push(arr[i]);//比基准点大的放在右边数组
}
//console.log("第"+(++times)+"次排序后:"+arr);
}
//递归执行以上操作,对左右两个数组进行操作,直到数组长度为<=1;
return quickSort(left).concat(midIndexVal,quickSort(right));
};
console.log(quickSort(arr1));
arr2.push(this[i]);
}
}
return arr2;
}
var array1=[1,2,3,4,5,6,5,4,3,2,1];
alert(array1.unique1());
//冒泡排序
var time=0;
var bubbleSort =function(arr){
for (var i=0;i<arr.length-1;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;
}
//console.log("第"+(++time)+"次排序后:"+arr);
}
}
return arr;
}
var arr1=[1,2,3,4,5,6,5,4,3,2,1]
console.log("最终结果为:"+bubbleSort(arr1));
//快速排序
var times=0;
var quickSort=function(arr){
//如果数组长度小于等于1无需判断直接返回即可
if(arr.length<=1){
return arr;
}
var midIndex=Math.floor(arr.length/2);//取基准点
var midIndexVal=arr.splice(midIndex,1);//取基准点的值,splice(index,1)函数可以返回数组中被删除的那个数arr[index+1]
var left=[];//存放比基准点小的数组
var right=[];//存放比基准点大的数组
//遍历数组,进行判断分配
for(var i=0;i<arr.length;i++){
if(arr[i]<midIndexVal){
left.push(arr[i]);//比基准点小的放在左边数组
}
else{
right.push(arr[i]);//比基准点大的放在右边数组
}
//console.log("第"+(++times)+"次排序后:"+arr);
}
//递归执行以上操作,对左右两个数组进行操作,直到数组长度为<=1;
return quickSort(left).concat(midIndexVal,quickSort(right));
};
console.log(quickSort(arr1));
//查找字符串中出现最多的字母
var str="zhaochucichuzuiduodezifu";
var o={};
//遍历str,统计每个字符出现的次数
for(var i=0;i<str.length;i++){
//当前第i个字符
var char = str.charAt(i);
//char就是对象o的一个属性,o[char]是属性值,存储出现的次数
if (o[char]) {//如果o[char]属性存在,属性值+1
o[char]++; //次数+1
} else{ //char属性不存在为1(即字符第一次出现)
o[char]=1; //若第一次出现,次数记为1
}
}
//输出的是完整的对象,记录着每一个字符及其出现的次数
//输出{a:1, c:3, d:2, e:1, f:1, h:3, i:3, o:2, u:5, z:3}
console.log(o);
//遍历对象,找到出现次数最多的字符和次数
var max=0;//存储出现次数最多的次数
var maxchar=null;//存储出现次数最多的字符
for (var key in o) {
if (max < o[key]) {
max = o[key];//max始终储存次数最大的那个
maxchar = key;//那么对应的字符就是当前的key
}
}
console.log("最多的字符是" + maxchar);
console.log("出现的次数是" + max);