js的日常写点东西-1

12 篇文章 0 订阅

关于js的逻辑和算法,对于我来说一直是一个比较薄弱的板块。希望多练习能够得到提升。
下面练习输出一个菱形◇的*;
在这里插入图片描述
首先我们观察这个输出的结构,当总排数是5的时候,每一排的*个数为,1,3,5,3,1
我们可以先以固定的5排来写,写完之后再进行代码的扩展。

var total=5;
var len =1;
for(var i=0;i<=5;i++){
	if(i<3){
		len=1+i*2
	}else{
		len=1+(4-i)*2	
	}
	console.log(len)
}
//1 3 5 3 1 这样我就输出了我们想要的数据格式。
//但是我们不一定只需要行数为5的,我们需求可能不固定。所以我们需要对我们得代码做一个可扩展性。

在上述代码的基础上,我们将其进行封装。
我们将需要的行数作为外界的一个传参进行修改。

function ceshi(len){
	var cell=Math.ceil(len/2);
	var lens=1;
	for(var i =0;i<len;i++){
		if(i<cell){
		lens=1+2*i;
		}else{
			lens=1+(len-1-i)*2
		}
	console.log(lens);
	}
}
ceshi(5);//1 3 5 3 1
ceshi (7);//1 3 5 7 5 3 1

这样我们的代码就可以随意的进行赋值了。获取到每一行的数据之后,我们就可以用*来代替了。

function ceshi(len){
	var cell=Math.ceil(len/2);
	var lens=1;
	for(var i =0;i<=len;i++){
		var contain=""; 
		if(i<cell){
			lens=1+2*i;
		}else{
			lens=1+(len-1-i)*2
		}
		var j=0;
		while(j<lens){
			contain+="*";
			j++;
		}
	console.log(contain);
	}
}
//经测试,可以输出具体个数的*,但是样式居中还需要调整。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值