去重和排序
2017-07-11 本文已影响0人
该不会是个傻子吧
闭包写法
(function () {
alert(1233)
})();
~function () {
alert('jjaja')
}();
+function () {
alert('jjaja123')
}();
-function () {
alert('jaja将')
}();
数组方法总结
- 从数组末尾删除一项
- ary.length-- ;ary.length-=1
- ary.pop
- ary.splice(ary.length-1,1)
- 从数组末尾增加一项
- ary[ary.length]='xxx'
- ary.push()
- ary.splice(ary.length,'xxx')
- 数组的克隆
- slice()/clice(0)
- ary.concat()
- ary.splice(0)
选项卡封装
- 功能:
- 可以多次使用选项卡
- 通过第二个参数可以设置默认显示
- !isNaN()判断是否为有效数字
- index=index%aBtn.length||0
数组去重
1、双重循环 一一对比去掉重复项
2、先sort排序,相邻两项进行比较去掉重复项
3、创建新数组,使用indexOf判断新数组中是否有某个值,对没有的进行插入
4、利用对象不重名
5、利用对象不重名,利用for循环给对象相同属性名进行记录出现次数,利用for...in循环拿到每个属性名
(对象具有不重名特性;如果对象的属性名是数字,那么打印出来的时候按照数字的顺序进行显示)
算法
快排 quickSort
- 1:拿到中间的索引,并通过索引找到对应的中间项
- 使用splice拿出中间项
- splice返回值是新数组,要选择索引为0的项
- 2:创建left,right两个空数组
- 3:用ary数字与中间项进行比较,小的放left,大的放right
- 4:return quickSort(left).concat([index],quickSort(right));
- 函数自己调用自己——递归
- 5:判断数组什么时候停止拆分;
插排 insertSort
- 1:先从ary中splice出一个单独数字 left数组
- 2:遍历ary数组中的每一项依次与left数组从后往前进行比较,如果比某个值大就插入到这个值的下一项的前面(break);如果比所有的都小,哪就插入到left数组的第一个;
冒泡排序
- 1:两重循环,第一重循环代表的是轮数,第二重代表的是次数,比较的次数在一次次的减少;
- 2:每次比较的时候,都拿当前项跟后一项进行比较,如果比他大,交换位置;
Math常用的方法
- Math.ceil() 向上增加取整
- Math.floor() 向下减少取整
- Math.random() 取0-1之间的随机数 不包含1
- Math.round(Math.random()*(m-n)+n);取n~m之间的随机数,包含m;
- Math.round() 四舍五入
- Math.pow(2,3) 幂次方
- Math.sqrt() 开平方
- Math.abs() 取绝对值
阻断执行
- 函数:return;
- 循环:break ;continue 本次不执行,以后继续