functionfactorialize(num){if(num ===0){
num =1;return num;}let oldNum = num;let i;for(i =1; i < oldNum; i++){
num *= i;}return num;}
console.log(factorialize(5));
回文算法
1.先将原始字符串去除多余空格 及标点符号
functionpalindrome(str){let newStr = str.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?]/g,"");let strArr = newStr.toLowerCase().split("");let i;for(i =0; i < strArr.length; i++){if(strArr[i]=== strArr[strArr.length -1- i]){if(strArr.length -1- i - i ===0|| strArr.length -1- i - i ===1){returntrue;}}else{returnfalse;}}}
console.log(palindrome("a l m o s t o m l a"));// a l m o s t o m l a// 0 1 2 3 4 5 6 7 8 9
求素数
1 不是素数, 素数又叫做质数: 除了1和它本身外不能被任何树整除
let arr =[]let i
for(i =1; i <100; i++){
arr.push(i)}functionget_primes(arr){return arr.filter(value =>{if(value <=1){returnfalse}for(let i =2; i <= Math.sqrt(value); i++){if(value % i ===0){returnfalse}}returntrue})}
console.log(get_primes(arr))
数组去重
filter
indexOf
let arr =[1,3,4,5,5,3,4,2]let array = arr.filter((item, index, arr)=>{return arr.indexOf(item)=== index
// console.log(arr.indexOf(item), index) })
console.log(array)
functionfoo(a, b,...rest){if(rest.length ===0){// rest = [3, 2, 2]return0}return rest.reduce((prev, value)=>{return prev + value
})}
console.log(foo(1,3,3,2,2)
通过 arguments 实现
functionfoo1(a,b){var i, rest =[]if(arguments.length >2){for(i =2; i < arguments.length; i++){
rest.push(arguments[i])}}
console.log(rest)}foo1(1,2,2,3,1,2)
返回句子中最长单词的长度
functionfindLongestWord(str){letMAX=0;
str.split(" ").forEach(function(item){if(item.length >MAX){MAX= item.length;}});returnMAX;}
console.log(findLongestWord("The quick brown fox jumped over the lazy dog"));
Array.prototype.sort() 排序
在右边的大数组中包含了4个小数组,请分别找到每个小数组中的最大值,
然后把它们串联起来,形成一个新的数组。
functionlargestOfFour(arr){let i;let retArr =[];for(i =0; i < arr.length; i++){let newArr = arr[i].sort((a, b)=>{return a - b;});
retArr.push(newArr[newArr.length -1]);}return retArr;}
console.log(largestOfFour([[4,5,1,3],[13,27,18,26],[32,35,37,39],[1000,1001,857,1],]));
检索字符串 lastIndexOf()
检查一个字符串(str)是否以指定的字符串(target)结尾。
如果是,返回true;如果不是,返回false
functionconfirmEnding(str, target){if(str.lastIndexOf(target)=== str.length - target.length){returntrue;}else{returnfalse;}}
console.log(confirmEnding("He has to give me a new name","name"));
functiontruncate(str, num){if(str.length > num && num >3){return str.slice(0, num -3)+"...";}if(str.length > num && num <=3){return str.slice(0, num)+"...";}return str;}
console.log(truncate("A-tisket a-tasket A green and yellow basket",3));