今天做到了 Freecodecamp上面的第一个算法题,虽然很基础,但还是记一下自己用的知识
每一道算法题都跟你罗列了需要用的知识,仔细查看很有用的
翻转字符串先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串。你的结果必须得是一个字符串
根据题目要求大概知道需要用到三个知识
- 字符串转换数组——(用到的是split切割方法)
- 翻转数组顺序——(需要用到reverse方法)
- 将数组转换为字符串——(需要用到join方法)
可以将平时刷题觉得重要指示储存在印象笔记中
最终实现代码如下
function reverseString(str) {
var arr = str.split("");
arr = arr.reverse();
arr = arr.join("");
return arr;
}
reverseString("hello");
Factorialize a Number
问题描述: 计算一个整数的阶乘如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积
思路就是:
- 定义一个函数
- 使用for循环
最终实现代码如下
function factorialize(num) {
var number = 1;
for (var i = 1;i<=num;i++) {
number = number * i;
}
return number;
}
factorialize(5);
Find the Longest Word in a String
找到提供的句子中最长的单词,并计算它的长度。函数的返回值应该是一个数字。
思路
- 将字符串转换为数组
- 计算数组的长度,利用for循环遍历数组
- 只要遍历到数组最大的一个数组的长度 ,后面的肯定都小于
代码实现如下
function findLongestWord(str) {
var arr = str.split(" ");//转换为数组
var num = 0;
for (var i = 0;i < arr.length;i++) { //遍历数组arr
if (arr[i].length > num) { //
num = arr[i].length;
}
}
return num;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
题目
确保字符串的每个单词首字母都大写,其余部分小写。
思路
将字符串小写并切割为数组,接着用replace方法返回替换掉的值,最终将数组合并为字符串
步骤
- toLowerCase()表示将字符串转换为小写
- split() 是将字符串转换为数组
- charAt()是根据字符串中的下标取出相应的值
- replace()是将返回需要替换的值
- join()合并字符串
实现代码如下
function titleCase(str) {
var arr = str.toLowerCase().split(" ");
for (var i in arr) {
arr[i] = arr[i].replace(arr[i].charAt(0),arr[i].charAt(0).toUpperCase());
}
return arr.join(" ");
}
titleCase("I'm a little tea pot");