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>