文章目录
codewars-js练习
2021/4/6
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);
}