Web前端-JavaScript--数组

99乘法表

<script>
   document.write("<table border='1'>");
    for(i=1;i<=9;i++){
        document.write("<tr>");
        for (j=1; j<=i; j++) {
         document.write('<td> '+ i+"x"+j+"="+i*j+ '</td>');

        }
       document.write("</tr>")
    }


document.write("</table>")


</script>

冒泡排序

<script>
    var arr = [7, 8, 5, 15, 55, 4, 32, 3, 2, 1];
    console.log("排列前", arr);
    for (i = 0; i < arr.length - 1; i++) {
        var boo = true;
        for (j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] < arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                boo = false;
            }
        }
        if (boo) {
            break
        }
    }
    console.log("排列后", arr);
    
</script>

 

数组概述:



    现在假设有这么一种需求:
        我们班有80人,需要用变量存储每个人的年龄,身高,体重
        每个人三个变量  80个人就是240个变量

    这么多变量根本没办法管理 所以需要一个整体的容器 放进去
    方便统一管理  进行数据的最大值 平均值 最小值 总值的计算

   所以我们需要数组  数组就是一片连续的内存空间
    一个大的容器 可以存放好多变量数据

数组的创建
//    第一种: 字面量创建
    var arr=["张飞","关羽","刘备","周瑜"];

//    第二种创建方式
    var arr1=new Array("穿天猴","麻雷子","二踢脚");

//    数组有索引值  通过索引值可以取出数组的任意元素
    
    console.log(arr[1]);
var arr1=[5,7,8,9];//手动定义初始元素 系统计算数组大小
 var arr2=new Array("张飞","陶渊明");//手动定义初始元素  系统计算数组大小
 var arr3=new Array(5); //手动定义数组初始长度 系统分配默认值(undefined)
操作数组 通过索引值
   var arr=["陶渊明","汪伦","麦哲伦"];
    
//    根据索引值取出指定元素
    console.log(arr[1]);
//    打印数组长度
    console.log(arr.length);
//        索引值可以超出长度使用 如果该索引值没有元素 则返回undefined
//    console.log(arr[5882]);
//    console.log(arr);
//    通过索引值改变指定元素
   /* arr[2]="郑和";   
    console.log(arr);
    arr[22222]="曹操";
    console.log(arr);
    console.log(arr.length);*/
数组遍历
 var arr=["郑和","张飞","关羽","刘玄德","小面","烤鸡翅"];

  
    console.log(arr[0]);
    console.log(arr[1]);
    console.log(arr[2]);
    console.log(arr[3]);
    console.log(arr[4]);
数组遍历:  普通for循环
for(var i=0;i<arr.length;i++){
        console.log(arr[i]);
 for...in循环(了解) 因为for...in是专门用来遍历json对象(后面讲)
格式:
    for(var 变量  in 数组变量){
        这里面的变量就是数组的每一个索引值
        自己根据索引值 去数组取出每个元素

    }
for(var i in arr){
//        console.log(i);
        console.log(arr[i]);
    }
向数组的最后一位添加元素的方法  数组.push(新元素)
arr.push("噫吁嚱");
将数组转换成字符串的方法
arr.join()

1.arr.join()不传参数  默认以逗号分割

2.arr.join("自定义符号") 以指定符号分割

3.arr.join("") 空字符串  最后效果就是没有分割
数组的查找  indexOf()  根据元素找到指定位置  找不到返回-1
 console.log(arr.indexOf("诸葛亮"));//-1
如果有元素重复  则找第一个出现的位置
数组翻转
console.log(arr.reverse());

数组练习1

<script>
    var arr=[5,7,3,6,2,8];
//求一组数中的所有数的和 和平均值
   /* var total=0;
    for(var i=0;i<arr.length;i++){
        total+=arr[i];
    }
    
    console.log("总值:"+total);
    console.log("平均值:"+(total/arr.length));
*/

    var max=arr[0]; //假设0号元素是最大值
    var min=arr[0] //假设0号元素是最小值

    var max_index=0; //假设最大值的索引是0
    var min_index=0;//假设最小值的索引是0


//    求一组数中的最大值和最小值,以及所在位置

    for(var i=1;i<arr.length;i++){
        if(arr[i]>max){
            max=arr[i]
            max_index=i;

        }

        if(arr[i]<min){
            min=arr[i]
            min_index=i;

        }

    }
    
    console.log("最大值是:"+max);
    console.log("最大值的所在位置:"+max_index);
    console.log("最小值是:"+min);
    console.log("最小值的所在位置:"+min_index);



</script>

数组练习2

<script>
    //将数组转换成字符串用|或其他符号分割(3种)

    /*var arr=["关羽","刘备","张飞","诸葛亮","张亮","麻辣烫"];

    var str="";
    for(var i=0;i<arr.length;i++){
        if(i==arr.length-1){
//            如果失败最后一个元素 那就直接拼内容 不拼|
            str+=arr[i]
        }else{
            str+=arr[i]+"|";
        }

    }
    
    console.log(str);
    console.log(arr.join("|"));*/
//将数组中值为0的去掉,不为0的存入新数组
/*var arr=[8,0,5,2,0,6,0,4,3,1];

var newArr=[];
for(var i=0;i<arr.length;i++){
   if(arr[i]!=0){
       newArr.push(arr[i]);
       
   } 
}

console.log(newArr);*/

//    翻转数组(反向,新数组)  1.翻转后是一个新数组  2.针对原来数组进行翻转

    var arr=["关羽","刘备","张飞","诸葛亮","张亮","麻辣烫","哈哈"];

//    翻转后放入新数组
    //    var newArr=[];
   /* for(var i=arr.length-1;i>=0;i--){
        newArr.push(arr[i])

    }
    console.log(newArr);*/

//针对源数组直接翻转
    /*
        经过分析 是  arr[i] 和arr[arr.length-1-i]这个元素交换位置


     */
    console.log("交换前:",arr);
    for(var i=0;i<arr.length/2;i++){
        var temp=arr[i];
        arr[i]=arr[arr.length-1-i];
        arr[arr.length-1-i]=temp;
//        console.log("交换了:",arr);
    }
    
    console.log("交换后:",arr);


    var arr1=["关羽","刘备","张飞","诸葛亮","张亮","麻辣烫","哈哈"];
    console.log(arr1.reverse());

</script>
发布了26 篇原创文章 · 获赞 4 · 访问量 423

猜你喜欢

转载自blog.csdn.net/yanghainan0318/article/details/103517330