去重和排序

闭包写法

  (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 本次不执行,以后继续

你可能感兴趣的:(去重和排序)