20170711笔记

数组方法总结

  • 从数组末尾删除一项
    • ary.length--;
    • ary.length-=1
    • ary.length=ary.length-1
    • ary.pop()
    • ary.splice(ary.length-1,1)
  • 给数组末尾增加一项
    • ary[ary.length]=xxx
    • ary.push()
    • ary.splice(ary.length,0,'xxx')
  • 数组的克隆方法
    • slice()
    • slice(0)
    • ary.concat()
    • ary.splice(0) 返回值是克隆

选项卡封装

  • 功能
    • 可以让一个页面中多个容器都有选项卡的功能
    • 通过第二个参数 设置默认点亮项
  • 参数可有可无 是用||的思想 ‘’或‘’
    var selectIndex=selectIndex%aBtn.length||0;
  • %的思想
    var selectIndex=selectIndex%aBtn.length||0;
  • 一个选项卡代码(自定义)
 var oWrap=document.getElementsByTagName('div')[0];
    var aBtn=oWrap.getElementsByTagName('li');
    var aDiv=oWrap.getElementsByTagName('div');
    for(var i=0;i
  • 闭包写选项卡代码
for(var i=0;i

封装选项卡

function tab(id,selectIndex){
        var oWrap=document.getElementById(id);
        var aBtn=oWrap.getElementsByTagName('li');
        var aDiv=oWrap.getElementsByTagName('div');
        oWrap.style.width=aBtn.length*200+'px';
        selectIndex=selectIndex%aBtn.length||0;
        function on(seIndex){
            for(var i=0;i

数组去重的方法

1、双重循环

for(var i=0;i

2、先用sort,然后用当前项跟相邻项进行比较

ary.sort(function (a,b){
return a-b;
});
for(var i=0;i

3、 新数组

var  newAry=[];
for(var i=0;i

4、 利用不重名的特性

var obj={};
    //遍历数组中的每一项,如果对象中没有,把这一项赋值一份给对象,如果对像中已经有了,说明这是重复项,我们就删除数组中的这一项;
    for(var i=0; i

5、 利用对象不重名的特性,实现了重复次数的记录,里面用到两个循环,一个for循环,for..in循环

var obj={};
    for(var i=0; i

对象跟别人不同的特性

1、不重名的特性
2、如果对象的属性名是数字,那么打印出来的时候,按照数组的先后顺序进行显示

算法

快排

  • 1:先拿到中间的索引,通过中间索引找到他对应的项
    • 这个中间项,是从数组中拎出来,即数组中没有他了,所以,只能用splice;
    • splice的返回值,是被删除的内容以新数组的形式返回,因为我们删除了一项,所以,要去数字必须用[0];
  • 2:创建两个新数组left,right;
  • 3:用ary数组跟中间项比较,比他小的放left数组,比他大的放right数组
  • 4: return quciksort(left).concat([center],quciksort(right));
    • 函数自己调用自己,属于"递归"
  • 5:停止拆分的条件 if(ary.length<=1){return ary;}
    • return 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() 取绝对值

插排

1、先从ary种取出来一个数字,单独是个数组 splice
2、遍历ary的数组,跟left数组,从后往前的比较,如果比left的数字小,继续往前比,如果比某个值大,就插入到这个值的下一项的前面;(必须break,否则就会出错) ;如果比所有的都小,那就插入到left数组的第一个;

冒排-冒泡排序

1、两重循环,第一重循环代表的是轮数,第二重循环代表的次数,比较的次数在一次次的减少;
2、 每次比较的时候,都拿当前项跟后一项进行比较,如果比他大,交换位置;

var tmp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=tmp;

跟函数相关的

  • 阻断函数的执行 return;

跟循环相关的

  • break 阻断循环的执行
  • continue 本次不执行,以后继续;

你可能感兴趣的:(20170711笔记)