js 数组

数组提取元素   直接a[i]  ;或者 循环提取元素; 或者直接输出 整个数组alert[数组名称]

1.冒泡排序 方法  【理解】

var er=new Array(0,9,8,6,7,5,4,3,11,10);
for(var i=0;i<er.length-1;i++)
{
    for(var j=i+1;j<er.length;j++)
    {
        if(er[i]>er[j])
        
        {
            var e;
            e=er[i];
            er[i]=er[j];
            er[j]=e;
            
        }
    }
}
alert(er);//直接输出整个数组
for(var t=0;t<er.length;t++)
{
    alert(er[t]);
}
方法一 抢首位

方法一中如果把外循环编程 数组内的任意一个值 可以直接找出最大值或者最小值:如下

var maxn=0;
    
    for(var i=0;i<attr.length;i++)
    {
        if(attr[i]>maxn)
        {
            maxn = attr[i];
        }
    }
    
    alert(maxn);
抢首位的方法求最大值
var attr = [8,9,7,6,5,4,3,2,1];
    
    var zj = 0;
    
    for(var i=0;i<attr.length-1;i++)//i循环次数
    {
        for(var j=0;j<attr.length-1-i;j++)//j为索引
        {
            if(attr[j]<attr[j+1])
            {
                zj = attr[j];
                attr[j] = attr[j+1];
                attr[j+1] = zj;
                
            }
        }
    }
    for( var t=0;t<attr.length;t++)
    {
    alert(attr[t]);
    }
方法二 强末尾

2.找出某元素的索引

var attr = [1,4,5,3,2,7,6,9];
    
    var zhao = 8;
    
    var sy = -1;
    
    for(var i=0;i<attr.length;i++)
    {
        if(attr[i]==zhao)
        {
            sy = i;
        }
    }
    
    if(sy==-1)
    {
        alert("没有找到值");
    }
    else
    {
        alert("该元素在"+sy);
    }
找出某元素的索引

3.找出 某个数出现的次数   设置标记变量辅助做题

求3,5,7在数组中出现的次数
/*    var c3 = 0;
    var c5 = 0;
    var c7 = 0;
    var a = 0;
    
    for(var i=0;i<attr.length;i++)
    {
        switch(attr[i])
        {
            case 3:
                c3++;
                break;
            case 5:
                c5++;
                break;
            case 7:
                c7++;
                break;
            default:
                a++;
        }
    }
    
    alert(c3);
    alert(c5);
    alert(c7);
switch case 嵌套

4.二维数组

 var attr = [    //定义二维数组 同理多维数组
    	[1,2,3,4],
        [5,6,7,8],
        [9,8,7,6]
    ];
    
    attr[1][3]  //输出单一元素 //输出二维数组单一元素 同理多维数组单一元素
    /*输出整个数组需要用循环,输出二维数单组 同理多维数组*/
    for(var i=0;i<attr.length;i++)
    {
    	for(var j=0;j<attr[i].length;j++)
        {
        	alert(attr[i][j]);
        }
    }

  5.死循环

while(true){}
for(var i=1;i<0;i++){}
do{} while(true/false)//  当为false时只运行一遍
......

  6.联动数组例题

<!DOCTYPE html>
<html>
<head lang="en">
	<meta charset="utf-8">
	<title>13</title>

</head>

<body>

<h2>联动菜单</h2>

城市:
<select id="a" onchange="fun();">
    <option value="-1">请选择</option>
    <option value="0">淄博</option>
    <option value="1">济南</option>
</select>

城区:
<select id="b">
    
</select>


</body>

<script>

var arr=[
    ["张店","临淄","周村","博山","桓台"],
    ["济南1","济南2","济南3","济南4"]
];


function fun(){
    var x=document.getElementsByTagName('select')[0];
    //lert(x.value);
    //arr[x.value]
    if(x.value==-1){
        var y=document.getElementsByTagName('select')[1];
        y.innerHTML="<option>请选择</option>";
    }
-----------------------------------注意下面部分---------------------
    var temp="";
    for (var i = 0; i < arr[x.value].length; i++) {
        //alert(arr[x.value][i]);
        temp+="<option value="+
        i+
        ">"+
        arr[x.value][i]+
        "</option>";
    }
    var y=document.getElementsByTagName('select')[1];
    y.innerHTML=temp;
------------------------------------------------------- }

  

 

posted @ 2016-11-07 12:58  get("新技能")  阅读(1459)  评论(0编辑  收藏  举报