算法js题

标准排序:

	var arr = [5,8,3,6,9]
	for(var i=0;i<arr.length;i++){
		for(var j=i+1;j<arr.length;j++){
		 	var temp
		 	if(arr[i]>arr[j]){
		 	 	temp=arr[i];
		 	 	arr[i]=arr[j];
		 	 	arr[j]=temp;
			}

		}
	}
	 console.log(arr)

冒泡排序:

	var arr = [5,4,6,1,3,2];
	
	for(var i=0;i<arr.length;i++){
		for(var j=0;j<arr.length-i+1;j++){
			var temp;
			if(arr[j]>arr[j+1]){
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}

字符串出现最多个数(2种)

第一种:

var str ='abcdefgaaass'
          var newarr=str.split("");
          var max=0,val="";
          function fn(arr,a){
            var count=0;
            for(var i=0;i<arr.length;i++){
                if(arr[i]==a){
                  count++;
                }
            }
            return count;
          }
          for(var i=0;i<newarr.length;i++){
              var ind=fn(newarr,newarr[i]);
              if(ind>max){
                max=ind;
                val=newarr[i];
              }
          }
          console.log("出现最多的字符是"+val+"出现的次数是"+max)

第二种:

 var strr='aaasssssbbbcccccccccccccccccccccc'
          function change(arr){
          	for(var j=0,len=0,str1='';j<arr.length;j++){
	          	var x = arr.substr(j,1);
	          	var y = arr.split(x);
	          	if(y.length-1>len){
	          		len = y.length-1;
	          		str1=x+','+len;

	          	}
	        }
				return str1;
          }
          
          console.log(change(strr));

编程实现,往数组里插入一个元素

	var arr = ["1411A","44","34305","djg","pic"];
		function fun3(ar,index,date){
			for(var i=ar.length-1;i>=index;i--){
				ar[i+1]=ar[i];
			}
			ar[index] = date;
		}
		fun3(arr,2,"hello");
		console.log(arr);

编程实现IndexOf方法

var brr=[5,9,6,3,2,5];
		function indexfun(arr,val){
			for(var i=0;i<arr.length;i++){
				if(arr[i]==val){
					return i;
				}
			}
			return -1;
		}
		console.log(indexfun(brr,13));

求数组中最大值和最小值

var arr=[2,41,3,1,8];
		var  temp=arr[0];

		 for(var i=0;i<arr.length;i++){
		 	  if(arr[i]<temp){
		 	  	temp=arr[i];
		 	  }
		 }
		 console.log(temp)

将字符串转换为驼峰形式

        var  str="border-bottom-color";
        function isstr(str){
          var arr=str.split("-");
          var one=arr[0];
          for(var i=1;i<arr.length;i++){
              one+=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
          }
          return one;
        }
        console.log(isstr(str));

str=‘a2b4admin3’字符的每个数字都乘2 ,成为’a4b8admin6’

	   var url='a2b4admin3';
	   var str11=''
	    for(var i=0;i<url.length;i++){
	    	  if(!isNaN(url[i])){
	    	  	str11=str11+url[i]*2
	    	  }else{
	    	  	str11=str11+url[i]
	    	  }
	    }
	    console.log(str11)

str='a2b4admin3’将字符串中的数字用中括号括起来 ‘a[2]b[4]admin[3]’

	  function  num(str){
	  var  arr=str.split('')
	  for(var i=0;i<arr.length;i++){
	          if(!isNaN(arr[i])){
	          	arr[i]="["+arr[i]+"]"
	          }

	  }
	 	return arr.join('')
	  }

	 console.log(num(url))

首先判断在数组中哪个数最大,然后让数组中的第一个数与最大的数相乘,返回结果

	 function maxn(arr){
				var big=arr[0];
				for(var i=0;i<arr.length;i++){
					if(arr[i]>big){
						big=arr[i]
					}
				}
				return big*arr[0]
			}
			console.log(maxn([2,1,80,6,10]));

str=‘abc’ 让字符串重复3遍,成为 str=‘abcabcabc’

var str='abc';
	function xun(a,b){
		var newstr='';
		for(var i=1;i<=b;i++){
			newstr+=a
		}
		return newstr
	}
	console.log(xun(str,3));

10到100的十位随机数并排序

	for(var i=1;i<=10;i++){			
			var ran=Math.floor(Math.random()*91+10)			
		arr.push(ran)
	}
	console.log(arr.sort(function(a,b){return a-b}))

写出一个段脚本,输出当前日期5天之后是星期几

var now=new Date();
		var day=now.getDate()
		var week=['日','一','二','三','四','五','六']
		now.setDate(day+5)
		console.log('星期'+week[now.getDay()])

封装一个方法,实现求任意多个数的平均值。

function f1(){
			//用一个变量接收和
			var temp = 0;
			//循环每个参数
			for(var i=0; i<arguments.length; i++){
				temp += arguments[i];
			}
			//返回平均数
			return temp/arguments.length;
		}
		console.log(f1(1,2,3,4,9))

/判断字符串是否对称/

var  str1="abch6g5g6hcba";      // aba
        function isduic(str){
            for(var i=0,len=str1.length;i<len/2;i++){
              // alert(str[i]);
              if(str[i]!=str[len-1-i]){//str.charAt(i)!=str.charAt(len-1-i);
                  return "不对称";
              }
            }
            return "对称";
        }
        console.log(isduic(str1));

千分符

 var str2=46548978911;
        function qianff(str){
            var strn=str.toString(),
                len=strn.length,
                ind=len%3,
                //console.log(strn);
                newstr=strn.substr(0,ind);
                console.log(newstr);
                if(ind==0){
                   newstr=strn.substr(0,3);
                    ind=3;
                    //console.log(newstr);
                }
                for(i=ind;i<len;i=i+3){
                  newstr+=","+strn.substr(i,3);
                }
                return newstr;
        }
        console.log(qianff(str2))

随机生成十六进制的颜色值 var arr=[“0”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“a”,“b”,“c”,“d”]

 var arrHex=["0","2","3","4","5","6","7","8","9","a","b","c","d"];
		var fuhao = "#";
		for(var i=0;i<6;i++){
			var color = arrHex[Math.floor(Math.random()*arrHex.length)];
			fuhao= fuhao+color;
			// str =str+arrHex[a];
		}
		console.log(fuhao);

随机从数组中取出三个不同的值。var arr = [1,2,3,4,5,6,7,8,9];

var arr = [1,2,3,4,5,6,7,8,9];
		var brr = [];
		for(var i=0;brr.length<3;i++){
			var a = Math.floor(Math.random()*arr.length);
			var b = arr[a];
			if(brr.indexOf(b)==-1){
				brr.push(b);																						
			}
		}
		console.log(brr);

求数组中字符串的个数

	var str=[0,1,2,3,4,5,"a","b","c","b"],sum=0;
		function strn(arr){
			for(var i=0;i<arr.length;i++){
				if(typeof(arr[i])=="string"){
					sum++;
				}
			}
			return sum;
		}
		console.log(strn(str));

把重复的值放入一个新的数组中 //这中方法过于繁琐,可以使用indexOf方法,等于-1判断

		var hrr = ["55","55","2","1"];
		function fun7(rra,num){
			var a = 0;
			for(var i = 0;i<rra.length;i++){
				if(rra[i]==num){
					a++;
				}
			}
			return a;
		}
		var rrb = [];
		for(var i = 0 ;i <hrr.length;i++){
			var length = fun7(hrr,hrr[i]);
			if(length >1){
				rrb.push(hrr[i]);
			}
		}
		console.log(rrb);

截取字符串的var s=“abcdefg”;截取完成后实现反转功能:g,f,e 其实等同于数组翻转

var str="hello";
		var arr=str.split("");
		var rts=arr.reverse();
		console.log(rts);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值