美文网首页
去重和排序

去重和排序

作者: 该不会是个傻子吧 | 来源:发表于2017-07-11 23:31 被阅读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 本次不执行,以后继续

    相关文章

      网友评论

          本文标题:去重和排序

          本文链接:https://www.haomeiwen.com/subject/gwdvhxtx.html