codewars练习(javascript)-2021/4/6

codewars-js练习

2021/4/6

github 地址

my github地址,上面有做的习题记录,不断更新…

【1】<8kyu>【Pre-FizzBuzz Workout #1】

输入:一个正整数,n,大于或等于1。如果提供了n,则无法控制其值。

您的预期输出是一个从1到n(包括n)的正整数数组。

example

4// [1,2,3,4]

solution

<script type="text/javascript">
	function preFizz(n) {
		var arr = [];
		for(var i=1;i<=n;i++)arr.push(i);
		return arr;
	}

    // 验证
  	console.log(preFizz(4));// [1,2,3,4]
    console.log(preFizz(5));// [1,2,3,4,5]
</script>
【2】<8kyu>【Price of Mangoes】

芒果有“3换2”(或者“2+1”,如果你喜欢)的优惠。对于给定的数量和价格(每个芒果),计算芒果的总成本。

example

mango(3, 3) ==> 6    //2 mangoes for 3 = 6; +1 mango for free
mango(9, 5) ==> 30  //6 mangoes for 5 = 30; +3 mangoes for free
mango(7,3)) ==> 15  

solution

<script type="text/javascript">
	function mango(quantity, price){
		// console.log(quantity,price)
		num = Math.floor(quantity/3)
		if(quantity<3)return quantity * price;
		return (num*2  + (quantity-num*3)) * price
	}

    // 验证
  	console.log(mango(3, 3));//6
	console.log(mango(9, 5));//30
	console.log(mango(2,3));//6
	console.log(mango(7,3));//15
</script>
【3】<7kyu>【Credit Card Mask】

编写一个函数maskify,它将除最后四个字符外的所有字符都更改为“#”。

example

maskify("4556364607935616") == "############5616"
maskify(     "64607935616") ==      "#######5616"
maskify(               "1") ==                "1"
maskify(                "") ==                 ""

// "What was the name of your first pet?"
maskify("Skippy")                                   == "##ippy"
maskify("Nananananananananananananananana Batman!") == "####################################man!"

solution

<script type="text/javascript">
	function maskify(cc) {
		console.log(cc)
		if(cc.length<=4)return cc;
		var temp = [];
		for(var i=0;i<cc.length-4;i++)temp.push('#');
		return (cc.replace(cc.substr(0,cc.length-4),temp.join('')))
	}

    // 验证
  	console.log(maskify("4556364607935616"));//"############5616"
	console.log(maskify("64607935616"));// "#######5616"
	console.log(maskify("1"));//"1"
</script>
function maskify(cc) {
		return cc.slice(0, -4).replace(/./g, '#') + cc.slice(-4);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值