freeCodeCamp (JavaScript基础算法题)

1、将摄氏度转换为华氏度

将摄氏度转换为华氏度的计算方式为:摄氏度乘以 9/5 然后加上 32。
输入参数 celsius 代表一个摄氏度的温度。 使用已定义的变量 fahrenheit,并赋值为相应的华氏度的温度值。 根据上述转换公式来进行转换。

function convertToF(celsius) {
  let fahrenheit = (celsius * 9)/5 +32;
  return fahrenheit;
}

convertToF(30);

2、反转字符串

请反转传入函数的字符串。
在反转字符串之前,你可能需要将其切分成包含字符的数组。
函数的返回结果应为字符串。

function reverseString(str) {
  return str.split('').reverse().join('');
}

reverseString("hello");

3、计算整数的阶乘

返回一个给定整数的阶乘计算结果。
对于整数 n,n 的阶乘就是所有小于等于 n 的正整数的乘积。
阶乘通常用符号 n! 来表示。
例如:5! = 1 * 2 * 3 * 4 * 5 = 120
在这个挑战中,只有非负整数会作为参数传入函数。

function factorialize(num) {
  if(num < 0){
    return -1;
  }else if (num == 0){
    return 1;
  }else {
return num * factorialize(num -1);
  }
}
factorialize(5);

4、找出字符串中的最长单词

返回给出的句子中,最长单词的长度。
函数的返回值应是一个数字。

function findLongestWordLength(str) {
  let myStr=str.split(' ');
  let longest = 0;
  for(var i = 0;i < myStr.length ; i++){
    if(longest < myStr[i].length){
    longest=myStr[i].length;
    }
  }
  return longest;
}

findLongestWordLength("The quick brown fox jumped over the lazy dog");

5、找出多个数组中的最大数字

请返回一个数组,该数组由参数中每个子数组中的最大数字组成。 为简单起见,给出的数组总会包含 4 个子数组。
别忘了,你可以通过 for 循环遍历一个数组,并用 arr[i] 的写法来访问数组中的元素。

function largestOfFour(arr) {
  let arr1 = [];
  for(let i = 0; i < arr.length ; i++){
    arr1.push(Math.max.apply(null,arr[i]));
  }
  return arr1;
}

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

6、确认结尾

检查字符串(第一个参数 str)是否以给定的目标字符串(第二个参数 target)结束。
这个挑战 可以 用 ES2015 引入的 .endsWith() 方法来解决。但在这个挑战中,请使用 JavaScript 的字符串子串方法。

function confirmEnding(str, target) {
  return str.substr(-target.length)===target;
}

confirmEnding("Bastian", "n");

未完待续...

上一篇:freeCodeCamp “正向先行断言和负向先行断言“ 练习


下一篇:FreeCodeCamp javascript基础最后一节 递归调用练习