未加星标

前端中经常出现的JS算法总结

字体大小 | |
[前端(javascript) 所属分类 前端(javascript) | 发布者 店小二03 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

转载自: 前端李李

1.排序算法

2.阶乘算法

3.回文字符串判断

4.翻转字符串算法

5.整型数组去重算法

6.数组中最大差值

7.随机指定长度字符串

8.统计字符串中次数最多字母

9.生成菲波那切数列数组

1.排序算法

冒泡排序 functionbubbleSort(arr){ for(var i=1;i<arr.length;i++){ for(var j=0;j<arr.length-i;j++){ var temp; if(arr[j]>arr[j+1]){ temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } return arr; } 快速排序 functionquickSort(arr,l,r){ var i,j,x; if(l< r){ i=l; j=r; x=arr[i]; while(i< j){ while(i< j&&arr[j]>=x){ j--; } if(i< j){ arr[i]=arr[j]; } while(i< j&&arr[i]< x){ i++; } if(i< j){ arr[j]=arr[i]; } } arr[i]=x; //递归调用 quickSort(arr,i+1,r); quickSort(arr,l,i-1); } return arr; }

2. 阶乘算法

functionbubbleSort(arr){ for(var i=1;i<arr.length;i++){ for(var j=0;j<arr.length-i;j++){ var temp; if(arr[j]>arr[j+1]){ temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } return arr; }

3. 回文字符串判断

functionpalindrome(str){ var re = /[W_]/g; var lowRegStr = str.toLowerCase().replace(re, ''); if (lowRegStr.length === 0) { return true; } if (lowRegStr[0] !== lowRegStr[lowRegStr.length - 1]) { return false; } else { return palindrome(lowRegStr.slice(1, lowRegStr.length - 1)); } }

4. 翻转字符串算法

functionreverseString(s){ var arr = s.split(''); var i = 0, j = arr.length - 1; while (i < j) { var t = arr[i]; arr[i] = arr[j]; arr[j] = t; i++; j--; } return arr.join(''); }

5. 整型数组去重算法

functionunique(arr){ var hashTable = {}; var data = []; for(var i = 0, l = arr.length; i < l; i++) { if(!hashTable[arr[i]]) { hashTable[arr[i]] = true; data.push(arr[i]); } } return data; }

6. 数组中最大差值

functiongetMaxProfit(arr){ var minPrice = arr[0]; var maxProfit = 0; for (var i = 0; i < arr.length; i++) { var currentPrice = arr[i]; minPrice = Math.min(minPrice, currentPrice); var potentialProfit = currentPrice - minPrice; maxProfit = Math.max(maxProfit, potentialProfit); } return maxProfit; }

7. 随机指定长度字符串

functionrandomString(n){ var str = 'abcdefghijklmnopqrstuvwxyz9876543210'; var tmp = ''; var l = str.length; for(var i = 0; i < n; i++) { tmp += str.charAt(Math.floor(Math.random() * l)); } return tmp; }

8. 统计字符串中次数最多字母

functionfindMaxDuplicateChar(str){ if(str.length == 1) { return str; } var charObj = {}; for(var i = 0; i < str.length; i++) { if(!charObj[str.charAt(i)]) { charObj[str.charAt(i)] = 1; } else { charObj[str.charAt(i)] += 1; } } var maxChar = '', maxValue = 1; for(var k in charObj) { if(charObj[k] >= maxValue) { maxChar = k; maxValue = charObj[k]; } } return maxChar; }

9. 生成菲波那切数列数组

functiongetFibonacci(n){ var fibarr = []; var i = 0; while(i < n) { if(i <= 1) { fibarr.push(i); } else { fibarr.push(fibarr[i - 1] + fibarr[i - 2]) } i++; } return fibarr; }

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

主题: 算法
分页:12
转载请注明
本文标题:前端中经常出现的JS算法总结
本站链接:http://www.codesec.net/view/531319.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 前端(javascript) | 评论(0) | 阅读(14)