1.Factorialize a Number
计算一个整数的阶乘
function factorialize(num) {
var lem=1;
for(var i=1;i<=num;i++){
lem*=i;
}
return lem;
}
factorialize(5);
2.Check for Palindromes
检查字符串是否是回文
function palindrome(str) {
var oldS=str.replace(/[\W_]/g,'').toLowerCase(); //[\W_]将非单词或_去除
var newS=oldS.split('').reverse().join('');
return oldS===newS;
}
palindrome("A man, a plan, a canal. Panama");
3.Find the Longest Word in a String
找到句子中最长单词,并计算其长度
function findLongestWord(str) {
return Math.max(...str.split(' ').map(s=>s.length)); //.map将数组中每个元素替换为其长度并利用max...获取数组最大值(ES6)
}
findLongestWord("The quick brown fox jumped over the lazy dog");
4.Title Case a Sentence
字符串的每个单词首字母都大写,其余部分小写。
function titleCase(str) {
var newStr=str.toLowerCase().split(' ');
var arr=[];
for(var i=0;i<newStr.length;i++){
arr.push(newStr[i].slice(0,1).toUpperCase()+newStr[i].slice(1));
}
return arr.join(' ');
}
titleCase("I'm a little tea pot");
5.Confirm the Ending
检查一个字符串(str)是否以指定的字符串(target)结尾。
function confirmEnding(str, target) {
return str.substr(-target.length)==target;
}
confirmEnding("Bastian", "n");
6.Chunky Monkey
把一个数组arr按照指定的数组大小size分割成若干个数组块。
function chunk(arr, size) {
var newArr=[];
for(var i=0;i<arr.length;i+=size){
newArr.push(arr.slice(i,i+size));
}
return newArr;
}
chunk(["a", "b", "c", "d","s"], 2);
7.Mutations
判断数组第一个字符串元素包含了第二个字符串元素的所有字符。
function mutation(arr) {
var newArr1=arr[0].toLowerCase();
var newArr2=arr[1].toLowerCase();
for(var i=0;i<newArr2.length;i++){
if(newArr1.indexOf(newArr2[i])==-1){
return false;
}
}
return true;
}
mutation(["Alien", "line"]);
8.Falsy Bouncer
删除数组中的所有假值。
function bouncer(arr) {
return arr.filter(Boolean);
}
bouncer([1, null, NaN, 2, undefined]);
9.Seek and Destroy
实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值。
function destroyer(arr) {
var arg=[];
for(var i=1;i<arguments.length;i++){ //第一个参数是arr数组,其他参数并未传入 所以用arguments对象将其他参数提取出来,
arg.push(arguments[i]); //再利用filter过滤掉匹配的数值 剩余的则是想要的数值!
}
return arr.filter(function(val){
return arg.indexOf(val)==-1;
});
}
destroyer(["tree", "hamburger", 53], "tree", 53);
10.Caesars Cipher
function rot13(str){
var arr=[];
var newA=0;
for (var i = 0; i < str.length; i++) { //将字符以编码单元显示 然后进行移位 再返回字符
arr.push(str[i].charCodeAt());
}
for (var i = 0; i < arr.length; i++) {
if (arr[i]>=65&&arr[i]<=77) {
arr[i]=arr[i]+13;
}else if(arr[i]>77){
arr[i]=arr[i]+13-26;
}
arr[i]=String.fromCharCode(arr[i]);
}
return arr.join('');
}
rot13("SERR PBQR PNZC");