数组

数组对象的作用是:使用单独的变量名来存储一系列的值

 创建数组

1: 常规方式:

var myCars=new Array(); 
myCars[0]="Saab";       
myCars[1]="Volvo";
myCars[2]="BMW";
2: 简洁方式:

var myCars=new Array("Saab","Volvo","BMW");
3: 字面:

var myCars=["Saab","Volvo","BMW"];
合并数组 - concat()
合并两个数组
<script>
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var children = hege.concat(stale);
document.write(children);
</script>
运行结果:Cecilie,Lone,Emil,Tobias,Linus

合并三个数组
<script>
var parents = ["Jani", "Tove"];
var brothers = ["Stale", "Kai Jim", "Borge"];
var children = ["Cecilie", "Lone"];
var family = parents.concat(brothers, children);
document.write(family);
运行结果:Jani,Tove,Stale,Kai Jim,Borge,Cecilie,Lone

修改值:

var mycars=["bmw","msld","vulk"];
mycars[0]="mzd";
console.log(mycars);

删除值:

var mycars=["bmw","msld","vulk"];
delete mycars[0];
console.log(mycars);

从键盘接受10个整数,求出其中的最大值和最小值。

<body>    
        <button onclick="fun()">求出其中的最大值和最小值</button>
        <script type="text/javascript">
            //从键盘接受10个整数,求出其中的最大值和最小值。
            /*方法1
            function fun(){
            var num1=Number(prompt('请输入第一个数'));
            var num2=Number(prompt('请输入第二个数'));
            var num3=Number(prompt('请输入第三个数'));
            var num4=Number(prompt('请输入第四个数'));
            var num5=Number(prompt('请输入第五个数'));
            var num6=Number(prompt('请输入第六个数'));
            var num7=Number(prompt('请输入第七个数'));
            var num8=Number(prompt('请输入第八个数'));
            var num9=Number(prompt('请输入第九个数'));
            var num10=Number(prompt('请输入第十个数'));
            var arr=[num1,num2,num3,num4,num5,num6,num7,num8,num9,num10];
            var max=arr[0],min=arr[0];
            for(var i=0;i<arr.length;i++){
                if(arr[i]>max){
                    max=arr[i];
                }            
            }
            for(var i=0; i<arr.length; i++){
                if(min>arr[i]){
                    min = arr[i];
                }            
            }            
            console.log(max);    
            console.log(min);    
            }*/
            //方法2.
            function fun(){
                var arr=new Array(10);
                for(var i=0;i<10;i++){
                    arr[i]=Number(prompt('请输入第'+(i+1)+'个数'));
                }
                document.write(arr+'<br />');
                //冒泡排序法
                for(var a=0;a<arr.length;a++){
                    for(var b=0;b<arr.length-a-1;b++){
                        if(arr[b]<arr[b+1]){
                            var c=arr[b+1];
                            arr[b+1]=arr[b];
                            arr[b]=c;
                        }
                    }
                }
                document.write(arr+'<br>');
                document.write('最大值为'+arr[0]);
                document.write('最小值为'+arr[9]);
            }
        </script>
    </body>

输入10个数,保存在一个数组中,在数组中查找某个数字,给出是否找到信息,如果找到了输出该数在数组中所处的位置,如果找不到输出“找不到”

<body>
        <button onclick="fun()">查找某个数字</button>
        <script type="text/javascript">
            //输入10个数,保存在一个数组中,在数组中查找某个数字,
            //给出是否找到信息,如果找到了输出该数在数组中所处的位置,如果找不到输出“找不到”*/
            function fun(){
                var arr=new Array(10);
                for(var i=0;i<arr.length;i++){
                    arr[i]=Number(prompt('请输入第'+(i+1)+'个整数'));
                }
                var num=Number(prompt('请输入你要查找的数'));
                /*循环中判断
                for(var i=0;i<=arr.length;i++){
                    if(num==arr[i]){
                        console.log('这个数在数组中是'+(i+1)+'个位置');
                        break;
                    } else if(i==arr.length){
                    console.log('找不到这个数');
                    }
                }
            }*/    
            //方法二:开关思想
            var flag=true;//(true找到了,false没找到)
            for(var i=0;i<arr.length;i++){
                if(num==arr[i]){
                    flag=true;
                    break;
                }else{
                    flag=false;
                }
            }
                if(flag){
                    console.log('这个数在数组中是'+(i+1)+'个位置');
                }else{
                    console.log('找不到这个数');
                }
            }
        </script>
    </body>

将一个数组中的元素逆序输出,即第一个元素和最后一个元素交换,第二个数与倒数第二元素交换…..,例如:原数组为:9  2  5  7   8,逆序后的数组为:8   7   5  2  9

<body>
        <button onclick="fun()">元素逆序输出</button>
        <script type="text/javascript">
            /*将一个数组中的元素逆序输出,即第一个元素和最后一个元素交换,第二个数与倒数第二元素交换…..,
             * 例如:原数组为:9      2  5  7   8,逆序后的数组为:8   7   5  2  9*/
            function fun(){
                var arr=new Array(8);
                for(var i=0;i<arr.length;i++){
                    arr[i]=Number(prompt('请输入第'+(i+1)+'个整数'));
                }
                
                //var arr = [9,2,5,7,8];
                for (var i= arr.length-1;i>=0;i--){
                console.log(arr[i]);
                }    
            }
                    
        </script>
    </body>

顾客从超市采购了10件商品,编写一个程序,用于接受每件商品的价格,计算应付的总金额。并分别打印出各个商品的价格以及应付的总金额的小票

<body>
        <button onclick="fun()">接受每件商品的价格</button>
        <script type="text/javascript">
            /*顾客从超市采购了10件商品,编写一个程序,用于接受每件商品的价格
             * ,计算应付的总金额。并分别打印出各个商品的价格以及应付的总金额的小票。*/
            function fun(){
                var arr=new Array(10);
                for(var i=0;i<arr.length;i++){
                    arr[i]=Number(prompt('请输入第'+(i+1)+'件商品价格'));
                    console.log(arr[i])
                }
                for(var k=0,sum=0;k<arr.length;k++){
                    sum+=arr[k]
                }
                console.log('总金额'+sum)
            }
        </script>
    </body>

 编写一个程序,用于产生20个0-10之间的随机数,将这20个随机数存入数组,并通过函数统计这些随机数中某个数出现的次数

<body>
        <button onclick="fun()">第六题</button>        
            //编写一个程序,用于产生20个0-10之间的随机数,将这20个随机数存入数组,并通过函数统计这些随机数中某个数出现的次数
            
        <script type="text/javascript">
            function fun(){
                var arr=new Array(20);//产生20个0-10之间的随机数
                for(var i=0;i<arr.length;i++){
                    arr[i]=parseInt(Math.random()*10);
                }
                console.log(arr);
                var num=Number(prompt('请输入要统计次数的数字'));
                var time=0;
                for(var j=0;j<arr.length;j++){
                    if(num==arr[j]){
                        time++;
                    }
                }
                console.log(time);
            }
        </script>

 定义函数,去掉数组中重复元素

 1.循环从arr中取值,i从0,同时创建空数组result
            for(var i=0,result=[];i<arr.length;i++){
                // 2. 循环遍历result,j从0
                for(var j=0;j<result.length;j++){
                    // 3.如果result中当前元素等于arr中当前元素  arr中的这个数在新数组中已经存在
                    if(arr[i]==result[j]){
                        break;//退出循环
                    }
                }// 遍历结束
                // 如果j等于result的length  表示这个元素在新数组中不存在 
                if(j==result.length){
                    // 将arr中当前元素,追加result末尾
                    result[result.length]=arr[i];
                } 
                    
            }// 遍历结束
            return result;// 给出返回值
        }
        function testUnique(){
            var arr=[1,1,2,2,3,4,3,5,6];
            var result=unique(arr);
            console.log(result);
        }

JS冒泡排序(依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面)

 动图演示:

代码:

<body>
        <button onclick="fun()">冒泡</button>
        <script type="text/javascript">
        function fun(){
            var arr=[2,5,9,3,7,6,4,1];
        
        //外层循环循环比较的轮数
        for (var i=1;i<arr.length;i++){
            //内层循环控制遍历每个元素的j
            for(var j=0;j<arr.length-1;j++){
                //如果arr中的j的位置的值>j+1位置的值
                //交换arr中j位置和j+1位置的值;
                if(arr[j]>arr[j+1]){
                var temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
                    }
                }
            }
        console.log(arr)
        }                                                            
        </script>
 </body>

 二维数组

1.二维数组的本质:数组中的元素又是数组,数组中的元素又引用了另一个子数组

var data=[
            //0,1,2,3
             [0,0,0,0],//0
             [0,0,0,0],//1
             [0,0,0,0],//2
             [0,0,0,0]//3
         ];
         //访问 arr[r][c]        
小例子:
var arr = [[1,2],['a','b']];
console.log(arr[1][0]); 
//输出a 第2列第1行所在的元素

遍历

var arr = new Array();         //先声明一维
       for(var i=0;i<5;i++){          //一维长度为5
          arr[i]=new Array(i);    //在声明二维
          for(var j=0;j<5;j++){      //二维长度为5
             arr[i][j]=i;
       }
} <br>然后,遍历二维数组arr
for(var i=0;i<arr.length;i++){
    for(var j=0;j<arr[i].length;j++){
        document.write(arr[i][j]);
    }
    document.write("<br/>");  
}
结果:
  
题目一:
<button onclick="fun()">计算每一组的平均值、总和</button>
        <script type="text/javascript">
        //创建一个可以存放四组数据的二维数组,循环随机录入数据,计算每一组的平均值、总和
        function fun(){
            var arr=new Array(4);
            var arr2=new Array(4);
            var arr=[
                     //0,1,2,3,
                     [0,0,0,0,],//0
                     [0,0,0,0,],//1
                     [0,0,0,0,],//2
                     [0,0,0,0,],//3
                 ];
                for(var i=0;i<arr.length;i++){
                     var sum=0;
                    for (var j=0;j<=arr2.length-1;j++){
                        arr2[j]=Number(prompt('请输入第'+(i+1)+'组的第'+(j+1)+'个数'));
                        var sum=sum+arr2[j];
                        var pin=sum/arr2.length;
                        
                    }
                    document.write('和为;'+sum);
                    document.write('平均值为;'+pin);
            
                }
                
            
        }
        </script>

 题目二

<button onclick="fun()">按钮</button>
        <script>
        /*接收并输出某公司某月的考勤和扣款信息,假设公司有5个员工,每个员工的考勤项有上下班忘打卡、
         *迟到、早退、旷工,其中上下班忘打卡扣款10元/次,迟到和早退扣款为20元/次,旷工100元/天  (使用二维数组)
        循环接收输入员工的编号、忘记打卡次数、迟到次数、早退次数、旷工次数,在网页中输出5个员工的考勤信息*/
        function fun(){
             var arr=[
                     //0,1,2,3,4
                     [0,0,0,0,0],//0
                     [0,0,0,0,0],//1
                     [0,0,0,0,0],//2
                     [0,0,0,0,0],//3
                     [0,0,0,0,0]//4
                 ];//5*5二维数组
            for(var r=0;r<arr.length;r++){
                for(var j=0;j<arr[r].length;j++){
                    var n1,n2,n3,n4,n5,n6;
                    switch(j){
                        case 0:
                        var n1=arr[r][j]=Number(prompt("请输入编号:"));
                        break;
                        case 1:
                        var n2=arr[r][j]=Number(prompt("请输入忘记打卡次数:"));                        
                        break;
                        case 2:
                        var n3=arr[r][j]=Number(prompt("请输入迟到次数:"));                       
                        break;
                        case 3:
                        var n4=arr[r][j]=Number(prompt("请输入早退次数:"));                       
                        break;
                        case 4:
                        var n5=arr[r][j]=Number(prompt("请输入旷工次数:"));                        
                        break;
                          case 5:
                          var n6=arr[r][j]=Number(prompt("请输入扣款总数:"));                        
                          break;                                                                                                                        
                        }                                                                           
                }
                document.write('编号为'+n1+'的第'+(r+1)+'位员工考勤如下:忘记打卡次数为'+n2+'次,迟到次数为'+n3+'次,早退次数为'+n4+'次,旷工次数为'+n5+'次,扣款总金额为'+(n2*10+n3*20+n4*20+n5*100)+'元'+"<br/>")
        }
                                   
        }
        
        </script>

 题目三

一家贸易公司有四位销售员,每位销售员负责销售四件商品,编写一个函数,--一个4*4的二维数组

        接收每名销售员销售的各类产品的数量。--- 二维数组的循环赋值
        打印产品销售明细表,--循环读取二维数组的数据
        明细表包括每类产品的销售总数,-- cSum 求二维数组中每一列的和
        以及每位销售员销售的产品数量  --- rSum  求 二维数组每一行的和
        占总销售的 --- sum 求二维数组所元素累加的和
        百分比。      ---  =rSum/sum
        使用以下公式:
        销售员N销售的产品A的百分比=(销售员N售出的产品A的销售量/总销售量)*100    arr[r][c]/sum  *100
        总销售量指各类产品销售量的总和(使用二维数组)
     -->
     <script>
         fun()
         function fun(){
             var arr=[
                     //0,1,2,3
                     [0,0,0,0],//0
                     [0,0,0,0],//1
                     [0,0,0,0],//2
                     [0,0,0,0]//3
                 ];//4*4二维数组
             //循环接收每位销售员销售产品的数量
             for(var r=0;r<arr.length;r++){
                 for(var c=0;c<arr[r].length;c++){
                     arr[r][c]=Number(prompt("请输入第"+(r+1)+"销售员,第"+(c+1)+"类产品的销售数量:"));

                 }
             }
         // debugger;
         /*
            1 2 3 4
            4 3 2 1
            1 2 3 4
            4 3 2 1
         */
             var typeSum=[0,0,0,0];//用来接收每一类销售的总额
             var rSum=[0,0,0,0];//每一个销售人员的数量总和
             //以上两个数据可以设置为一二维数组
             var allSum=0;//全公司的销售总和
             for(var r=0;r<arr.length;r++){
                 for(var c=0;c<arr[r].length;c++){
                     //计算每一类的销售总额和
                     typeSum[c]+=arr[r][c];
                     //计算每一个行的和
                     rSum[r]+=arr[r][c];
                     //产品的总销售和
                     allSum+=arr[r][c];

                 }
                 console.log(typeSum);
             }
             //计算销售占比
             var perArr=[];
             for(var r=0;r<arr.length;r++){
                 perArr[r]=new Array(arr.length);
                 for(var c=0;c<arr[r].length;c++){
                     perArr[r][c]= paresInt((arr[r][c]/allSum)*100);
                 }
             }
             console.log(perArr)
         }
原文地址:https://www.cnblogs.com/conlover/p/10875358.html