JS | 教练,我想做习题1

JS | 教练,我想做习题1

🚀 前言

大家好呀,我是毛小悠,也可以叫我毛毛,是一名前端开发工程师。

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

以下每道题,毛毛我都做过一遍了。简单的题目,看答案就可以懂。复杂的题目,我会写题目解析的。

由于个人经验有限,如有不对,还希望各位同行指正。如有造成误解,还希望多多谅解。

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

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

🍳练习场

点击进入codepen练习。

codepen是一个在线代码编写平台。可以编写多种代码语言,也可以作为大家提问题的代码演示场所。推荐使用。

📖题目一:字符串是回文吗?

习题内容:回文词是向前和向后相同的词。比如下面的单词。

  • mom

  • racecar

  • kayak

给定一个单词,创建一个函数来检查它是否是回文。

例子

checkPalindrome("mom")true

checkPalindrome("scary")false

checkPalindrome("reviver")true

checkPalindrome("stressed")false

注**:**所有测试输入均为小写。

习题代码

function checkPalindrome(str) {
	//代码写在这里
}

📖题目二:鲍勃(Bob)故事:

鲍勃(Bob)正在担任公共汽车司机。他在该市居民中非常受欢迎。由于有很多乘客想要上车,他有时不得不面对巴士上剩余空间不足的问题!他希望你编写一个简单的程序,告诉他是否可以容纳所有乘客。

任务概述:

你必须编写一个接受三个参数的函数:

cap 公交车可容纳的人数(不包括驾驶员)。

on 是公交车上的人数(不包括驾驶员)。

wait 是等待上车的人数(不包括驾驶员)。

如果有足够的空间,请返回0,否则,请返回不能乘坐的乘客数量。

用法示例:

enough(10, 5, 5);
// 0, He can fit all 5 passengers
enough(100, 60, 50);
// 10, He can't fit 10 out of 50 waiting

习题代码:

function enough(cap, on, wait) {
      //填写你的代码
}

📖题目三:你到底有多好?

你的课堂上有一个测试,你通过了。恭喜你!
但是你是一个有野心的人。你想知道自己是否比班上的学生的平均成绩更好。

你会收到一个包含同龄人考试成绩的数组。现在计算平均值并比较你的分数!

如果你更好,请返回True,否则False!

注意:

你的分数不包括在班级分数组中。为了计算平均点,你也可以将分数添加到给定的数组中!

习题代码:

function betterThanAverage(classPoints, yourPoints) {
 //填写你的代码
}

📖题目四:求每个数字的平方

要求你对数字的每个数字取平方并将它们连接起来。

例如,如果我们通过该函数运行9119,则会出现811181,因为9 2是81而1 2是1。

注意:该函数接受一个整数并返回一个整数。

习题代码:

function squareDigits(num){
// code here
}

📖题目五:检查考试

有2个数组,第一个数组是正确答案的值,例如[“ a”,“ a”,“ b”,“ d”]。第二个是学生提交的答案。

这两个数组不为空,并且长度相同。返回此答案数组的分数,每个正确答案为+4,每个错误答案为-1,每个空白答案为+0,以空字符串表示(使用空格字符)。

如果分数<0,则返回0。

例如:

checkExam(["a", "a", "b", "b"], ["a", "c", "b", "d"])6
checkExam(["a", "a", "c", "b"], ["a", "a", "b",  ""])7
checkExam(["a", "a", "b", "c"], ["a", "a", "b", "c"])16
checkExam(["b", "c", "b", "a"], ["",  "a", "a", "c"])0

习题代码:

function checkExam(array1, array2) {
// code here
}

答案

🍗题目一的答案:

参考答案1:

function checkPalindrome(str) {
	return	[...str].reverse().join("") == str
}

参考答案2:

function checkPalindrome(str) {
  return str === str.split("").reverse().join("");

}

参考答案3:

function checkPalindrome(str) {
  for (i = 0; i < str.length; i++) {
		if (str[i] !== str[str.length - 1 - i]) {
      return false;
    }
  }
return true;
}

🍗题目二的答案:

function enough(cap, on, wait) {
  return Math.max(wait + on - cap, 0);
}

🍗题目三的答案:

参考答案1:

function betterThanAverage(classPoints, yourPoints) {
  return yourPoints > classPoints.reduce((a, b) => a + b, 0) / classPoints.length; 
}

参考答案2:

function betterThanAverage(classPoints, yourPoints) {
  // Your code here
  var classAvg = 0;
  for (var i = 0; i < classPoints.length; i++){
    classAvg += classPoints[i]; 
  }
  classAvg = classAvg/classPoints.length; 
  return yourPoints > classAvg;
}

🍗题目四的答案:

参考答案1:

function squareDigits(num){
    var string = num.toString();
    var results = [];
    for (var i = 0; i < string.length; i++){
        results[i] = string[i] * string[i];
    }
    return Number(results.join(''));
};

参考答案2:

function squareDigits(num){
  return Number(('' + num).split('').map(function (val) { return val * val;}).join(''));
  
}

参考答案3:

function squareDigits(num){
  var array = num.toString().split('').map( function(int) {
    var i = parseInt(int);
    return i * i;
  });
  
  return parseInt(array.join(""));
}

🍗题目五的答案:

参考答案1:

function checkExam(array1, array2) {
  const reducer = (a, e, idx) => {
    if (e === "") {
      return a;  
    }
    
    if (e === array1[idx]) {
      return a += 4;
    }
    
    return --a;
  }
  const score = array2.reduce(reducer, 0);
  return score < 0 ? 0 : score;
}

参考答案2:

function checkExam(array1, array2) {
var score = 0;
  for (var i = 0; i < array1.length; i++){
  
    if (array1[i] == array2[i]) {
    
    score += 4;
    
    }
    
    else if (array2[i] === ""){

      score += 0
  
    }
    else {
    score -= 1
    }
  }
  
  if (score < 0) {
    score = 0
  }  
 
 return score
 
}

🍁后序

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

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

可以关注我的公众号:前端毛小悠。有更好的阅读体验。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值