JS | 教练,我想做习题2

JS | 教练,我想做习题2

技术杂谈小彩虹2021-08-18 16:40:00290A+A-

前言

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

本系列文章旨在通过练习来提高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;
}

后序

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

求关注求点赞 ~~

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

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示 | 支付宝红包
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们