JS | 教练,我想做习题2

一个人想着一个人 提交于 2021-01-30 08:49:53

🚀 前言

大家好呀,我是毛小悠,可以叫我二毛,在家中排行老二,是一名前端开发工程师。

本系列文章旨在通过练习来提高JavaScript的能力,一起愉快的做题吧。😀😀😀

以下每道题,二毛我都有尝试做一遍。建议限时训练,比如限定为半小时,如果半小时内想不出来,可以结合文章末尾的参考答案来思考。

可以在下方评论区留言或者加我的微信:code_maomao。期待你的到来。

求关注求点赞👍~~~😘😘😘

📖 题目1:Fizz Buzz

嘶嘶声

返回一个数组,其中包含从1到N的数字,其中N是参数值。N永远不会小于1。

输入一个数字N,返回一个数组,数组元素由从1到N组成。

但是,如果数组元素满足以下任一条件,请替换某些值:

  • 如果该值是3的倍数,请改用“ Fizz”值
  • 如果该值是5的倍数:请改为使用“ Buzz”值
  • 如果该值是3和5的倍数:请使用值“ FizzBuzz”代替

方法调用示例:

string[] result = FizzBuzz.GetFizzBuzzArray(3); // => [ "1", "2", "Fizz" ]

习题代码

function fizzbuzz(n){

}

📖 题目2:最小值总和!

给定大小为2D的数组m * n。您的任务是在每一行中找到最小值的总和。

例如:

[
  [1, 2, 3, 4, 5],       // minimum value of row is 1
  [5, 6, 7, 8, 9],       // minimum value of row is 5
  [20, 21, 34, 56, 100]  // minimum value of row is 20
]

习题代码

function sumOfMinimums(arr) {
 
}

📖 题目3:四七

简单的规则:您的函数应接受输入4和7。如果4输入,函数应返回7。如果7输入,函数应返回4。输入的其他任何内容都应返回0。只有一个陷阱,您的函数不能包含if语句,switch语句或三元运算符(或eval函数,因为您可以绕开if要求来使用它)。

有一些非常简单的方法可以解决此问题,但是我鼓励您尝试并尽可能发挥创造力。

祝好运!

系统代码

function fourSeven(n){

}

答案

🍗 题目1的答案

参考答案1:

function fizzbuzz(n)
{
  var i = 1, arr = [];
  while(i <= n) {
    var fizz = (i % 3 == 0);
    var buzz = (i % 5 == 0);
    if(fizz || buzz) {
      arr.push((fizz?"Fizz":"") + (buzz?"Buzz":""));
    }
    else {
      arr.push(i);
    }
    i++;
  }
  return arr;
}

var fizzify = fizzbuzz;

参考答案2:

// Return an array
var fizzify = fizzbuzz = function(n)
{
  return Array.apply(null, new Array(n)).map(function(e, i){
    return (++i % 3 ? '' : 'Fizz' ) + (i % 5 ? '' : 'Buzz') || i;
  }); 
}

参考答案3:

const fizzbuzz = n =>
  [...Array(n)].map((val, idx) => !(++idx % 15) ? `FizzBuzz` : !(idx % 5) ? `Buzz` : !(idx % 3) ? `Fizz` : idx);

🍗 题目2的答案

参考答案1

function sumOfMinimums(arr) {
  return arr.reduce((a, b) => a + Math.min(...b), 0);
}

参考答案2

function sumOfMinimums(arr) {
  let total = 0;
  
  for (let i = 0; i < arr.length; i++){
   total += Math.min(...arr[i])
  }
  
  return total;
}

参考答案3:

function sumOfMinimums(arr) {
  var sum=0;
  for (var i=0; i<arr.length; ++i)
  {
    var min=Infinity;
    for (var j=0; j<arr[i].length; ++j)
      if (min>arr[i][j])
        min=arr[i][j];
    sum+=min;
  }
  return sum;
}

🍗 题目3的答案

参考答案1:

function fourSeven(n){
  // Your Code Here
  let results = {
    7 : 4,
    4 : 7,
  }
  return results[n] || 0
}

参考答案2:

function fourSeven(n){
return {7:4, 4:7}[n] | 0
}

参考答案3:

function fourSeven(n) {
  while ( n===4 )
    return 7;
  while ( n===7 )
    return 4;
  return 0;
}

🍁后序

本系列会定期更新的,题目会由浅到深的逐步提高。

求关注求点赞 👍~~🍭🍭🍭

可以关注我的公众号:前端毛小悠。欢迎阅读

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!