本篇文章给大家分享的内容是常见的前端JS算法总结,有着一定的参考价值,有需要的朋友可以参考一下
排序算法
1、冒泡排序
function bubbleSort(arr){ var i = 0, j = 0; for(i=1; i" 从小到大排序 // " arr[j+1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } return arr;}
登录后复制
2、快速排序
function quickSort(arr,l,r){ if(l x) j--; if(i3、二路归并
function merge(left, right) { var result = [], il = 0, ir = 0; while (il字符串操作
1、判断回文字符串
function palindrome(str){ // W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。 var re = /[W_]/g; // 将字符串变成小写字符,并干掉除字母数字外的字符 var lowRegStr = str.toLowerCase().replace(re,''); // 如果字符串lowRegStr的length长度为0时,字符串即是palindrome if(lowRegStr.length===0) return true; // 如果字符串的第一个和最后一个字符不相同,那么字符串就不是palindrome if(lowRegStr[0]!=lowRegStr[lowRegStr.length-1]) return false; //递归 return palindrome(lowRegStr.slice(1,lowRegStr.length-1));}登录后复制
2、翻转字符串
思路一:反向遍历字符串
function reverseString(str){ var tmp = ''; for(var i=str.length-1; i>=0; i--) tmp += str[i]; return tmp}登录后复制
思路二:转化成array操作
function reverseString(str){ var arr = str.split(""); var i = 0,j = arr.length-1; while(i3、生成指定长度随机字符串
function randomString(n){ var str = 'abcdefghijklmnopqrstuvwxyz0123456789'; var tmp = ''; for(var i=0; i4、统计字符串中次数最多字母
function findMaxDuplicateChar(str) { if(str.length == 1) { return str; } var charObj = {}; for(var i = 0; i = maxValue) { maxChar = k; maxValue = charObj[k]; } } return maxChar + ':' + maxValue;}登录后复制
数组操作
1、数组去重
function unique(arr){ var obj = {} var result = [] for(var i in arr){ if(!obj[arr[i]]){ obj[arr[i]] = true; result.push(arr[i]); } } return result;}登录后复制
2、数组中最大差值
function getMaxProfit(arr){ var min = arr[0], max = arr[0]; for(var i = 0; i max) max = arr[i]; } return max - min;}登录后复制
其他常见算法
1、阶乘
非递归实现
function factorialize(num) { var result = 1; if(num 1) { result *= num--; } return result;}登录后复制
递归实现
function factorialize(num) { var result = 1; if(num 1) return num*factorialize(num-1);}登录后复制
2、生成菲波那切数列
强行递归实现
function getfib(n){ if(n == 0) return 0; if(n == 1) return 1; if(n > 1) return getfib(n-1) + getfib(n-2);}function fibo(len){ var fibo = []; for(var i = 0; i简约非递归实现
function getFibonacci(n) { var fibarr = []; var i = 0; while(i3、二分查找
非递归实现
function binary_search(arr, key) { var low = 0, high = arr.length - 1; while(low arr[mid]){ low = mid + 1; }else if(key递归实现
function binary_search2(arr, low, high, key) { if(low > high) return -1; var mid = parseInt((low + high)/2); if(key == arr[mid]) { return mid; } else if(key > arr[mid]) { return binary_search2(arr, mid+1, high, key); } else if(key登录后复制
以上就是常见的前端JS算法总结的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2773484.html