codewars-js练习
2021/3/31
github 地址
【1】<8kyu>【Counting sheep】
example:
[true, true, true, false,
true, true, true, true ,
true, false, true, false,
true, false, false, true ,
true, true, true, true ,
false, false, true, true]//17
solution
<script type="text/javascript">
function countSheeps(arrayOfSheep) {
console.log(arrayOfSheep)
var str = arrayOfSheep.join('');
var arr = str.match(/true/gi);
console.log(arr==null)
return arr!=null?arr.length:0;
}
// 验证
array1 = [true, true, true, false,
true, true, true, true ,
true, false, true, false,
true, false, false, true ,
true, true, true, true ,
false, false, true, true ];
array2 = [null,null,null,null,null,null,null]
console.log(countSheeps(array1));//17
console.log(countSheeps(array2));//0
</script>
【2】<5kyu>【Pete, the baker】
编写一个函数cakes(),该函数接受配方(对象)和可用的配料(也是一个对象),并返回Pete可以烘烤的蛋糕的最大数量(整数)
example:
// must return 2
cakes({flour: 500, sugar: 200, eggs: 1}, {flour: 1200, sugar: 1200, eggs: 5, milk: 200});
// must return 0
cakes({apples: 3, flour: 300, sugar: 150, milk: 100, oil: 100}, {sugar: 500, flour: 2000, milk: 2000});
solution
<script type="text/javascript">
function cakes(recipe, available) {
// console.log(recipe,available)
var arr = [];
for(var i in recipe){
// console.log(i)
// console.log(i in available)
if(i in available){
arr.push(Math.floor(available[i]/recipe[i]))
}
else return 0
}
return Math.min(...arr)
}
// 验证
recipe = {flour: 500, sugar: 200, eggs: 1};
available = {flour: 1200, sugar: 1200, eggs: 5, milk: 200};
console.log(cakes(recipe, available));//2
recipe = {apples: 3, flour: 300, sugar: 150, milk: 100, oil: 100};
available = {sugar: 500, flour: 2000, milk: 2000};
console.log(cakes(recipe, available));// 0
</script>
这篇博客记录了两道JavaScript Codewars练习,分别为8kyu的'Counting Sheep'和5kyu的'Pete, the Baker'。'Counting Sheep'题目要求计算真值数组中`true`的数量,而'Pete, the Baker'则要求根据食材配方和库存计算最大可制作蛋糕数。解决方案中展示了如何通过遍历和匹配方法解决计羊问题,以及通过配料比例计算蛋糕数量的方法。
224

被折叠的 条评论
为什么被折叠?



