JavaScript--数组转置、排序、乘法表、阶乘

计算阶乘并计算总和

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
</head>
<body>

</body>

<script type="text/javascript">	

var str="for循环实现10的阶乘";
document.write("<h2>"+str+"</h2><hr>");
var s=0;
for(var n=1;n<=10;n++){
    function sum(n){
        if(n<=1){
            return 1
        }else{
            /*return n*sum(n-1);*/
            return n*arguments.callee(n-1)
        }
    }
    var result=sum(n);
    document.write(n+"的阶乘等于:"+result+"<br>");
    s+=result;
}
n=n-1;
document.write("1~"+n+"的阶乘之和等于:"+s);

</script>
</html>

计算阶乘:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>课本上的阶乘</title>
</head>
<body>

</body>
<script type="text/javascript">
	var str='计算任意数的阶乘';
	function jiecheng(n){
		if(n==1){
			return 1;
		}
		return n*jiecheng(n-1);
	}
	var n=prompt('求n的阶乘');
	document.write('<h1>'+str+'</h1>'+'<hr>');
	n=parseInt(n);
	if(isNaN(n)){
		document.write('输入的值不合法!');}
		else{
	document.write(n+'的阶乘为:'+jiecheng(n));}

</script>
</html>

在这里插入图片描述
九九乘法表:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>九九乘法表</title>
</head>
<body>
<script type="text/javascript">
for(var i=1;i<10;i++){

	for(var j=1;j<=i;j++){
document.write(i+'*'+j+'='+(j*i)+'&nbsp;');
	
}document.write('<br>');//记得换行
}
</script>
</body>
</html>

在这里插入图片描述
二维数组的转置:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>转置</title>
</head>
<body>
	<script type="text/javascript">
var arr=[[0,2,3,4],[6,5,7,8],[0,7,5,4]];
var res=[];
for(var i=0;i<arr[0].length;i++){
	res[i]=[];
	for(var j=0;j<arr.length;j++){
		res[i][j]=arr[j][i];
	}
}
console.group('转置前:');
console.log(arr);
console.groupEnd();
console.group('转置后:');
console.log(res);
console.groupEnd();
	</script>

</body>
</html>

在这里插入图片描述
冒泡排序:

<!DOCTYPE html>
<html>
<head>
	<title>冒泡排序逆序</title>
	<meta charset="utf-8">
</head>
<body>
	<script type="text/javascript">
		var arr=[1,2,8,643,4,9];
		var temp=0;
		document.write('待排序数组:'+arr);
		for(var i=0;i<arr.length;i++){
			for(var j=0;j<arr.length-i;j++){
				if(arr[j]<arr[j+1]){
                  
                   temp=arr[j+1];
                   arr[j+1]=arr[j];
                   arr[j]=temp;

				}
			}
		}
document.write('<br>'+'排序后数组:'+arr);
	</script>

</body>
</html>

前面的是乱序,后面的是已经排好的:j<arr.length-i

在这里插入图片描述
直接插入排序:

<!DOCTYPE html>
<html>
<head>
	<title>直接插入排序</title>
	<meta charset="utf-8">
</head>
<body>
	<script type="text/javascript">
		var arr=[7,54,3,12,6,4,123,534,73];
		document.write('待排序数组:'+arr);
		var temp=0;
		for(var i=0;i<arr.length;i++){
		//逐个插入,新插入的与前一个有序数组中所有元素进行比较
			for(var j=i;j>0;j--){//插入一个元素,与前一个元素相比较,确定自己的位置
                 if(arr[j-1]>arr[j]){//不满足条件,跳出循环
                         temp=arr[j-1];
                         arr[j-1]=arr[j];
                         arr[j]=temp;
                 }
			}
		}
		document.write('<br>'+'排序后的数组'+arr);
	</script>

</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值