js基本算法
一、阶乘(递归思想)
// 计算阶乘
function factorial(n) {
if (n === 1) {
return 1
}
return n * factorial(n - 1)
}
二、回文(利用reverse()函数)
// 判断回文
function palindrome1(val) {
if (typeof val !== 'string') {
val = val.toString()
}
let newVal = val.split('').reverse().join('')
return val === newVal
}
三、生成任意长度的随机字符串
// 随机生成长度为n字符串
function randomString(n) {
let str = '0123456789abcdefghijklmnopqrstuvwxyz'
let len = str.length
let rs = ''
while (n) {
rs += str.charAt(Math.floor(Math.random() * len))
n--
}
return rs
}
四、去除简单数组的重复元素(es6 Set数据结构)
// 去除简单数组的重复元素
function unique(arr) {
return new Set(arr)
}
js基本算法的更多相关文章
- js的 算法 和 数据结构
js的 算法 1.对一个对象数组按照对象某个属性进行排序 : https://www.cnblogs.com/webcabana/p/7460038.html 在做公交的项目中就碰到过这种算法问题, ...
- 总结下js排序算法和乱序算法
其实本人最怕的就是算法,大学算法课就感觉老师在讲天书,而且对于前端来说,算法在实际的应用中实在是很有限.毕竟算法要依靠大量的数据为基础才能发挥出算法的效率,就浏览器那性能,......是吧,退一万步说 ...
- Round() 四舍五入 js银行家算法(转)
首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825; ...
- 排序图解:js排序算法实现
之前写过js实现数组去重, 今天继续研究数组: 排序算法实现. 排序是数据结构主要内容,并不限于语言主要在于思想:大学曾经用C语言研究过一段时间的排序实现, 这段时间有空用JS再将排序知识点熟悉一遍. ...
- 结构-行为-样式-Js排序算法之 快速排序
快速排序算法,是我的算法系列博客中的第二个Js实现的算法,主要思路: 在一个数组中随机取一个数(一般都取第一个或者最后一个),使这个数与数组中其他数进行比较,如果比它大就放到它的右边,比它小就放 ...
- js排序算法汇总
JS家的排序算法 十大经典算法排序总结对比 一张图概括: 主流排序算法概览 名词解释: n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外 ...
- JS排序算法
1.冒泡排序 冒泡算法是比较相邻的两项,如果前者比后者大,就交换他们. 假设一共有n项,那么一共需要n-1趟,第一趟需要交换n-1次,但是第一趟结束后,最后一项基本确定就是最大项了,所以第二次需要交换 ...
- 常用的 JS 排序算法整理
关于排序算法的问题可以在网上搜到一大堆,但是纯 JS 版比较零散,之前面试的时候特意整理了一遍,附带排序效率比较. //1.冒泡排序 var bubbleSort = function(arr) { ...
- js的算法题
1.统计一个字符串中出现最多的字母 给出一个字符串,统计出现次数最多的字母.如:“wqeqwhixswiqhdxsq”,其中出现最多的是q. js算法的实现 function findMax(str) ...
- js快速排序算法解析
数组的快速排序算法,和并归排序步骤基本类似. 都是先拆分,后合并.并归排序是:拆分容易,合并难. 快速排序是:拆分难,合并容易 要理解快速排序,首先要理解拆分逻辑 要素:找一个基准点,通过操作使得数列 ...
随机推荐
- tomcat-性能优化参考
转摘 http://blog.csdn.net/lifetragedy/article/details/7708724. ###jdk1.6.未验证.仅供参考### linux环境下Tomcat调优 ...
- 解决"Microsoft Visual C++ 14.0 is required"的问题
1. 在 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 上面找到要安装的组件 2.下载相应的版本到本地 3. pip install **.whl
- 从Linux传输apk包到Windows系统,一周的心路历程,累
1.在Windows服务器上打开一个cmd窗口,执行脚本,只适用于Windows系统 --NO String cmd = "cmd.exe /c adb -s f223413 install ...
- C语言集成开发环境使用小记
时隔6年,我又重操C语言,是什么让我如此再下定决心?就是不想让自己所学过的知识就此荒废了,我重新以一个C语言初学者的身份(当然,稍稍有点基础,以前的知识忘得没这么快^_^)温故C语言,学习了几天,果真 ...
- python--生成器、三元表达式、列表解析、生成器表达式
补充: 在文件开头声明一个空字典,然后在每个函数前加上装饰器,完成自动添加到字典的操作 func_dic={} def make_dic(key): def deco(func): func_dic[ ...
- jdbc 数据库批处理insert操作
package blob; import java.sql.Connection; import java.sql.PreparedStatement; import jdbc.utils.*; // ...
- Security基础(二):SELinux安全防护、加密与解密应用、扫描与抓包分析
一.SELinux安全防护 目标: 本案例要求熟悉SELinux防护机制的开关及策略配置,完成以下任务: 将Linux服务器的SELinux设为enforcing强制模式 在SELinux启用状态下, ...
- HDU6655 Just Repeat(2019杭电多校J题)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6655 简单博弈问题,A,B手里各有n,m张牌,牌有颜色,两人轮流出牌(A先出),一个人只能打出对放未打 ...
- UVA11134_Fabled Rooks
大概题意: 在n*n的棋盘上面放n个车,能否使他们互相不攻击(即不能在同一行一列),并且第i个车必须落在第i的矩形范围(xl,yl, xr,yr)之内 xy互相并不干扰,所以就可以把这个二维问题压缩成 ...
- PHP实现RSA2加密
PHP实现RSA2加密 1. 需要开启php的 php_openssl扩展 <?php /* * RSA2签名 * @param array 请求的参数 * @param string 私钥 * ...