今天做到了 Freecodecamp上面的第一個(gè)算法題宠互,雖然很基礎(chǔ),但還是記一下自己用的知識(shí)
每一道算法題都跟你羅列了需要用的知識(shí)静盅,仔細(xì)查看很有用的
翻轉(zhuǎn)字符串先把字符串轉(zhuǎn)化成數(shù)組良价,再借助數(shù)組的reverse方法翻轉(zhuǎn)數(shù)組順序,最后把數(shù)組轉(zhuǎn)化成字符串。你的結(jié)果必須得是一個(gè)字符串
根據(jù)題目要求大概知道需要用到三個(gè)知識(shí)
- 字符串轉(zhuǎn)換數(shù)組——(用到的是split切割方法)
- 翻轉(zhuǎn)數(shù)組順序——(需要用到reverse方法)
- 將數(shù)組轉(zhuǎn)換為字符串——(需要用到j(luò)oin方法)
可以將平時(shí)刷題覺得重要指示儲(chǔ)存在印象筆記中
最終實(shí)現(xiàn)代碼如下
function reverseString(str) {
var arr = str.split("");
arr = arr.reverse();
arr = arr.join("");
return arr;
}
reverseString("hello");
Factorialize a Number
問題描述: 計(jì)算一個(gè)整數(shù)的階乘如果用字母n來代表一個(gè)整數(shù)明垢,階乘代表著所有小于或等于n的整數(shù)的乘積
思路就是:
- 定義一個(gè)函數(shù)
- 使用for循環(huán)
最終實(shí)現(xiàn)代碼如下
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
找到提供的句子中最長(zhǎng)的單詞蚣常,并計(jì)算它的長(zhǎng)度。函數(shù)的返回值應(yīng)該是一個(gè)數(shù)字痊银。
思路
- 將字符串轉(zhuǎn)換為數(shù)組
- 計(jì)算數(shù)組的長(zhǎng)度抵蚊,利用for循環(huán)遍歷數(shù)組
- 只要遍歷到數(shù)組最大的一個(gè)數(shù)組的長(zhǎng)度 ,后面的肯定都小于
代碼實(shí)現(xiàn)如下
function findLongestWord(str) {
var arr = str.split(" ");//轉(zhuǎn)換為數(shù)組
var num = 0;
for (var i = 0;i < arr.length;i++) { //遍歷數(shù)組arr
if (arr[i].length > num) { //
num = arr[i].length;
}
}
return num;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
題目
確保字符串的每個(gè)單詞首字母都大寫溯革,其余部分小寫贞绳。
思路
將字符串小寫并切割為數(shù)組,接著用replace方法返回替換掉的值鬓照,最終將數(shù)組合并為字符串
步驟
- toLowerCase()表示將字符串轉(zhuǎn)換為小寫
- split() 是將字符串轉(zhuǎn)換為數(shù)組
- charAt()是根據(jù)字符串中的下標(biāo)取出相應(yīng)的值
- replace()是將返回需要替換的值
- join()合并字符串
實(shí)現(xiàn)代碼如下
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");