zoukankan      html  css  js  c++  java
  • 关于数组的简单讲解

    第二天第1天

    数组元素

        // 创建一个数组元素
        var arr = ['a','b','c','d'];
        // alert(arr); 显示数组内容
        console.log(arr);//  显示数组
        // console.log(arr.length); 显示数组长度,因为数组排列从0开始,所以显示的长度会加一
        delete arr[2];
        console.log(arr);
        //通过delete删除数组元素会形成空位,空位因为没有数据所以是undefined
        //会形成稀疏数组
        //通过length删除数组元素
        //通过吧length属性设置为0,可以清空数组/如果数组本身length值就是0,那这种方式清空数组将会没有效果
        arr.length = 0;
        console.log(arr);
    

    数组内部更改查询

        var arr = ['a','b','c','d'];
        //更改
        arr[1]= 'x'
        arr[2]= 'y'
        console.log(arr);
        //现在查询数组元素
        console.log(arr[0]);
        console.log(arr.length);
        console.log(arr[arr.length-1]);//获取最后一个元素
        for(var i=0;i<arr.length;i++){
            console.log(arr[i])//从第0位开始逐步打印
        }
    

    多维数组

    //数组里可以储存任意类型数据
        //数组里面继续储存数组,我们通常把这样的数组称之为多维数组
        var arr1 = [
            ['张三', '李四'],
            ['王五', '赵六'],
            [
                ['皮皮虾', '我们走'],
                ['去找一个男朋友', [
                    ['吃炸鸡', '喝啤酒']
                ]]
            ]
            ];
        console.log(arr1);
        // 输出李四
        console.log(arr1[0][1])
        console.log(arr1[2][1])
        console.log(arr1[2][1][1][0][1])
    

    数组删除注意事项

    // 创建一个数组 
    var arr = ['a','b','c','d','e'];
    
    console.log(arr);
    
    delete arr[2];
    
    console.log(arr[2]);// 如果通过delete 删除,会形成空位,方位会为undefined
    
    console.log(arr[10]);// 如果使用的索引值超出了范围,那么同样会显示undefined
    

    数组还可通过push增加新数组并且返回一个长度

        var arr = ['a','b','c']; // 创建一个数组  
        // push方法会通过返回值返回u一个新数组的长度
        arr.push('s','2')
        var info = arr.push
        console.log(arr);
        console.log(info);
    

    数组通过pop方法删除数组最后一个

        //通过pop方法进行删除 
        var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
    
        var len = arr.length;
    
    
        for (var i = 0; i < len; i++) {
            console.log(arr.length)
            arr.pop();
        }
        console.log(arr);
    

    数组通过shift来实现提出数组的第一位,此时数组失去第一组,重新从0排序

        var arr = [1,2,3,4];
    
        var info = arr.shift();
        console.log(info);//此时提出的1
        console.log(arr);//此时数组:0:2,1:3........
    

    数组通过unshift方法在数组首行开始添加数组

    // unshift方法 
        var arr = [1,2,3,4];
    
        var a = arr.unshift('张晓桑','李晓丝');
        console.log(a); //此时显示长度6
        console.log(arr);//从零开始排序
    
    

    遍历数组 :数组全部调用之类的

        // 遍历数组  
        for(var i in arr){
    	console.log(arr[i])
        }
    

    将数组从小到大排列:(理解并背下来)

        var arr = [3,2,4,6,5,1,9,7,8,10];
        function sort(arr){
    
    	for(var i=0;i<arr.length - 1;i++){
    		// console.log(i)
    		for(var j=0;j<arr.length - i -1;j++){
    			if(arr[j] > arr[j+1]){
    				var swap = arr[j];
    				arr[j] = arr[j+1];
    				arr[j+1] = swap;
    			    }
    		    }
    	    }
        } 
        sort(arr)
        console.log(arr)  
    

    第二种排列方法

        function selectSort(arr){
    	    var len = arr.length;
    	    var minIndex,temp;
    
    	    for(var i=0;i<len-1;i++){
    		    minIndex = i; 
    		    for(var j=i+1;j<len;j++){
    			    if(arr[j] < arr[minIndex]){ // 找最小值
    				    minIndex = j;
    			    }
    		    }
    		    temp = arr[i];
    		    arr[i] = arr[minIndex];
    		    arr[minIndex] = temp;
    	    }
        }
        selectSort(arr);
        console.log(arr)
    

    对象

    // 创建一个对象  
    	var obj = {};
    	console.log(obj)
    	/*
    	属性:
    		姓名 
    		年纪
    		爱好
    		地址
    		电话
    	方法:
    		跑步 
    		唱歌
    		旅游
    	*/
    	// console.log(name)
    	var xiaoming = {
    		"name":"小明",
    		age:35,
    		like:"吃喝嫖赌",
    		address:"浑南区",
    		phone:"13209087979",
    		run:function(){
    			alert("啊,跑步累死啦!");
    		},
    		lvyou:function(){
    			alert("xiaoming and xiaohong go lvyou,xiaohong say:today,me he an zhu zai where li");
    		}
    	};
    	// xiaoming.noKnow = "哈哈哈,我也不知道是啥";
    	// xiaoming.sayHello = function(){alert("hello,world")}
    	// delete xiaoming.noKnow;
    	// delete xiaoming.sayHello;
    	// xiaoming.age = 18;
    	console.log(xiaoming.name)
    	console.log(xiaoming['name'])
    	// console.log(xiaoming)
    	// console.log(xiaoming.name);
    	// xiaoming.run();
    	// window.alert();
    

    随机点明:通过数组长度来实现与数组之间的绑定

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style type="text/css">
            #box {
                 300px;
                height: 300px;
                border: 20px solid rgb(181, 44, 44);
                line-height: 300px;
                text-align: center;
                font-size: 35px;
            }
        </style>
    </head>
    
    <body>
        <div id="box">
            点名
        </div>
        <button id="start">开始</button>
        <button id="stop">暂停</button>
    </body>
    <script>
        // 第一步:先创立一个数组来储存人名
        var name_list = ["王德法", "卢本伟", "李健", "郭美美","王子瑄"];
        var timer; //创建一个变量来储存定时器
        var oBox = document.getElementById('box');
        var start = document.getElementById('start');
        var stop = document.getElementById('stop');
        // 建立函数
        function changeName() {
            var num = Math.floor(Math.random() * name_list.length); //建立随机数,通过随机长度来绑定数组
            oBox.innerText = name_list[num];
            // console.log(oBox.innerText);
            // console.log(num);
            timer = setTimeout("changeName()", 50);
        }
        // changeName() 
        start.addEventListener('click',function(){
    	changeName()
    	// console.log(name);
    })
    
    
    stop.addEventListener('click',function(){
        //清空时间
    	clearTimeout(timer)
    	// console.log(name);
    })
    </script>
    
    </html>
    
  • 相关阅读:
    【树状数组】bzoj2743 [HEOI2012]采花
    【二分答案】bzoj1639 [Usaco2007 Mar]Monthly Expense 月度开支
    【二分答案】【最短路】bzoj1614 [Usaco2007 Jan]Telephone Lines架设电话线
    【二分答案】【Heap-Dijkstra】bzoj2709 [Violet 1]迷宫花园
    【二分答案】【字符串哈希】bzoj2084 [Poi2010]Antisymmetry
    【二分答案】【最大流】bzoj1305 [CQOI2009]dance跳舞
    【计算几何】【二分答案】【最大流】bzoj1822 [JSOI2010]Frozen Nova 冷冻波
    【二分答案】【最大流】bzoj3130 [Sdoi2013]费用流
    【动态规划】bzoj3992 [Sdoi2015]序列统计 10分
    【二分答案】【最大流】bzoj3993 [Sdoi2015]星际战争
  • 原文地址:https://www.cnblogs.com/xuangewudishuaiqi/p/11414865.html
Copyright © 2011-2022 走看看