js总结 (4)JavaScript高级程序设计

JavaScript高级程序设计

1.闭包解决方法  》立即执行函数

  

var btn=document.getElementsByTagName('button');
    var con=document.getElementsByTagName('div');
    for (var i = 0; i <btn.length; i++) {

        (function (i) {                    
            btn[i].onclick=function () {
                for (var j = 0; j<btn.length ; j++) {
                con[j].style.display="none";
                } 
              con[i].style.display="block"; 
            } 
         }(i))
    } 

 2.间隔执行和定时执行函数

         
    // setTimeout(function () {     这是等待1000ms再执行    清除 clearTimeout( meter1 )
        // alert("a");
    // }, 1000);
    //  var a=1;var speed=2;

    // setInterval(function () {                  每隔多少毫秒执行     清除 clearInterval( meter1 ) 
// document.write(parseInt(a+=speed)+"<br>"); 
// speed=a/2; // }, 100); 

 3.置顶

document.documentElement.scrollTop=0;

 4.删除数组某一项
  

if (val.length >= 2) {
val.splice(0, 1)  删除从下表0开始,长度为1
}
arr = ['a','b','c','d']
删除 ----  item不设置

arr.splice(1,1)   //['a','c','d']         删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变

arr.splice(1,2)  //['a','d']          删除起始下标为1,长度为2的一个值,len设置的2

替换 ---- item为替换的值

arr.splice(1,1,'ttt')        //['a','ttt','c','d']         替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1

arr.splice(1,2,'ttt')        //['a','ttt','d']         替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1

 

添加 ----  len设置为0,item为添加的值

arr.splice(1,0,'ttt')        //['a','ttt','b','c','d']         表示在下标为1处添加一项‘ttt’

看来还是splice最方便啦

2:delete       delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变

如:delete arr[1]  //['a', ,'c','d']     中间出现两个逗号,数组长度不变,有一项为undefined

 5. 一个数组根据另一个数组大小排序

 数组大小排序

   var  arr2=['zs',5,'lis',3,8,]
        var  arr1=[9,13,10,11,16]
        var temp = 0;
        var temp2="";
        for (var i = 0; i < arrb.length; i++) {
            for (var j = 0; j < arrb.length - i; j++) {
                if (arrb[j] > arrb[j + 1]) {
                    temp = arrb[j + 1];
                    arrb[j + 1] = arrb[j];
                    arrb[j] = temp;
                    temp2=an[j+1];
                    an[j+1]=an[j];
                    an[j]=temp2;
                }
            }}

 两个数组按照一个数组排序
 

function zhuanhuans(an,arrb) {
	var temp = 0;
	var temp2="";
	for (var i = 0; i < arrb.length; i++) {
		for (var j = 0; j < arrb.length - i; j++) {
			if (arrb[j] > arrb[j + 1]) {
				temp = arrb[j + 1];
				arrb[j + 1] = arrb[j];
				arrb[j] = temp;
				temp2=an[j+1];
				an[j+1]=an[j];
				an[j]=temp2;
			}
		}}
		return an;
		return arrb;
	}

  

  

原文地址:https://www.cnblogs.com/nice2018/p/9811573.html