• 5、数组(下)


    1、数组里面存数组

    image

                var num1 = 10;
    			var str = "hello";
    			var isYes = true;
    			var arr1 = [10, 20, 30,[50, 60]];
    			var arr = [num1, str, isYes, arr1];
    
    			// alert(arr[3][2]);
    			// alert(arr[3][3][1]);
    
    
    			// alert(arr); //10,hello,true
    
    			// alert(arr[3]);
    			/*var tmpArr = arr[3];
    			alert(tmpArr);
    			alert(tmpArr[1]);
    			alert(arr[3][1])*/
    

    【注】在数据中的元素,可以存储任意数据类型的数据。

    2、二维数组 习题

      通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。试编程。

                    1、声明数组arr  一共  五个元素  这五个元素都是数组
    				2、下标为0的这个元素  arr[0] = [1, 2, 3, 4, 5];
    			/*	arr[0] = [1, 2, 3, 4, 5];
    				arr[1] = [6, 7, 8, 9, 10];
    				arr[2] = [11, 12, 13, 14, 15];
    				arr[3] = [16, 17, 18, 19, 20];
    				arr[4] = [21, 22, 23, 24, 25];
    			*/
    			var arr = [];
    			var tmp = 1; //用于累加的数 1 -> 25
    			for(var i = 0; i < 5; i++){
    				var newArr = [];
    				//给newArr填充五个数据
    				for(var j = 0; j < 5; j++){
    					newArr.push(tmp++);
    				}
    				arr.push(newArr);
    				//arr[[], [], [], [], []];
    			}
    
    			// alert(arr[0]);
    
    
    			for(var i = 0; i < arr.length; i++){
    				//1、分别输出每一个arr中元素,并换行
    				// document.write(arr[i]);
    				
    				//2、将tmpArr中的每一个数输出
    				for(var j = 0; j < arr[i].length; j++){
    					if(j <= i){
    						document.write(arr[i][j] + "&ensp;");
    					}
    				}
    
    
    				document.write("<br />");
    			}
    			
    			
    			
    			/*
    				1、求数组中所有元素的和;
    				2、让数组中的元素交换位置(重要) arr[1] arr[3]交换值;
    				3、求数组的最大数和最小数(重要) max   min
    				4、求数组的最小数的下标(重要)index
    			*/
    
    			var arr = [4, 5, 2, 3, 1];
    			var sum = 0;
    			for(var i = 0; i < arr.length; i++){
    				sum += arr[i];
    			}
    			// alert(sum);
    
    			var tmp = arr[1];
    			arr[1] = arr[3];
    			arr[3] = tmp;
    			// alert(arr); //1,2,5,4,3
    
    
    			// 最大数
    			var max = arr[0]; //假设第一个元素,最大
    			var min = arr[0]; //假设第一个元素,最小
    			var index = 0;
    			for(var i = 1; i < arr.length; i++){
    				/*if(arr[i] > max){
    					max = arr[i];
    				}*/
    				if(arr[i] < min){
    					min = arr[i];
    					index = i;
    				}
    			}
    
    			// alert(max);
    			alert(min);
    			alert(index);
    

    3、排序

    /*
    reverse()
    直接将原数组逆序。直接修改了原数组。
    格式:数组.reverse();
    */

    		/*var arr = [30, 20, 10, 5, 50, 100];
    		arr.reverse();
    		alert(arr); //100,50,5,10,20,30*/
    

    /*
    sort()
    排序
    数组.sort(); 升序。
    【注】不好用,默认是使用字符串排序。所以我们不用。
    */

    	/*      var arr = [5, 4, 3, 7, 8, 9];
    		arr.sort();
    		alert(arr); //3,4,5,7,8,9*/
    
    		var arr = [5, 15, 10, 1];
    		arr.sort();
    		alert(arr); //1,10,15,5
    

    4、冒泡法

    /*
    数据结构:数据排序算法。
    冒泡排序
    选择排序(固定写法)
    */

    /*
    冒泡排序的思路:
    思路:输入6个无序的数字,从头到尾依次比较相邻两个数字大小,若大数在前、小数在后,则交换两数位置,依次比较,使全部数据按从小到大排列。

    			一共有6个数,比较5轮。
    
    			第一轮: 5次
    				9, 8, 7, 6, 5, 4
    				8, 9, 7, 6, 5, 4
    				8, 7, 9, 6, 5, 4
    				8, 7, 6, 9, 5, 4
    				8, 7, 6, 5, 9, 4
    				8, 7, 6, 5, 4, 9
    			第二轮: 4次
    				8, 7, 6, 5, 4
    				7, 8, 6, 5, 4
    				7, 6, 8, 5, 4
    				7, 6, 5, 8, 4
    				7, 6, 5, 4, 8
    			第三轮:3次
    				7, 6, 5, 4
    				6, 7, 5, 4
    				6, 5, 7, 4
    				6, 5, 4, 7
    			第四轮: 2次
    				6, 5, 4
    				5, 6, 4
    				5, 4, 6
    			第五轮:1次
    				5, 4
    				4, 5
    		*/
    
    		var arr = [9, 8, 7, 6, 5, 4];
    
    		//  冒泡排序
    		//1、确定比较多少轮 = 数组长度 - 1;
    		for(var i = 0; i < arr.length - 1; i++){
    			//2、这一轮比较的次数 = 数组长度 - 当前轮数(i + 1);
    			for(j = 0; j < arr.length - (i + 1); j++){
    				if(arr[j] > arr[j + 1]){
    					//交换两个数的位置
    					var tmp = arr[j];
    					arr[j] = arr[j + 1];
    					arr[j + 1] = tmp;
    				}
    			}
    		}
    		alert(arr); //4,5,6,7,8,9
    

    5、选择排序

    /*
    选择排序

    			打擂台法:
    			 将每一个擂台拿出来,跟后面所有的元素,进行比较,符合交换条件,交换位置。
    
    		第一轮:  五次
    			 9, 8, 7, 6, 5, 4
    			 8, 9, 7, 6, 5, 4
    			 7, 9, 8, 6, 5, 4
    			 6, 9, 8, 7, 5, 4
    			 5, 9, 8, 7, 6, 4
    			 4, 9, 8, 7, 6, 5
    		第二轮:  四次
    			    9, 8, 7, 6, 5
    			    8, 9, 7, 6, 5
    			    7, 9, 8, 6, 5
    			    6, 9, 8, 7, 5
    			    5, 9, 8, 7, 6
    
    		第三轮:  三次
    			       9, 8, 7, 6
    			       8, 9, 7, 6
    			       7, 9, 8, 6
    			       6, 9, 8, 7
    
    		第四轮:  二次
    			          9, 8, 7
    			          8, 9, 7
    			          7, 9, 8
    
    		第五轮:  一次
    			             9, 8
    			             8, 9
    
    			【注】选择,自己尝试编写。
    		*/
    		var arr = [9, 8, 7, 6, 5, 4];
    		for(var i = 0; i < arr.length - 1; i++){
    			for(var j = i + 1; j < arr.length; j++){
    				if(arr[i] > arr[j]){
    					var tmp = arr[i];
    					arr[i] = arr[j];
    					arr[j] = tmp;
    				}
    			}
    		}
    
    		alert(arr); //4,5,6,7,8,9
    

    6、join

    /*
    功能:将数组 => 字符串
    将数组中的元素拼接成字符串
    格式:数组.join("字符串");
    值:拼接成的字符串
    不改变原数组
    */

            var arr = [1, 2, 3, 4, 5];
    		var str = arr.join("+");
    		// alert(str);//1+2+3+4+5
    
    
    		/*
    			1、随机给出一个五位以内的数,然后输出该数共有多少位,每位分别是什么
    		*/
    		var num = 12345;
    		/*
    			将数字num的每一位取出。
    
    						
    		*/
    		var arr = []; //用来存储取下来的每一位。
    		while(1){
    			if(num == 0){
    				break;
    			}
    			//个位如何取
    			arr.push(num % 10);
    			num = parseInt(num / 10);
    		}
    		arr.reverse();
    		alert(arr.length);
    

    7、join进阶

    /*
    功能:将数组 => 字符串 将数组中的元素拼接成字符串
    格式:数组.join("字符串");
    值:拼接成的字符串
    */

    		var arr = [1, 2, 3, 4, 5];
    		var str = arr.join("+");
    		// alert(str);//1+2+3+4+5
    
    
    		/*
    			1、随机给出一个五位以内的数,然后输出该数共有多少位,每位分别是什么
    		*/
    		var num = 12345;
    		/*
    			将数字num的每一位取出。
    
    						
    		*/
    		var arr = []; //用来存储取下来的每一位。
    		while(num){
    			//个位如何取
    			arr.push(num % 10);
    			num = parseInt(num / 10);
    		}
    		arr.reverse();
    		alert(arr.length);
  • 相关阅读:
    python numpy 介绍
    python+图像分割seg
    C++ 添加库
    input标签的disabled和readonly的区别
    linux中mysql忘记密码解决办法
    memcached服务安装与卸载
    app与服务端通信时如何进行消息校验
    缓存同步问题
    数据中添加对字段的说明
    服务器报警
  • 原文地址:https://www.cnblogs.com/zhongchao666/p/9275476.html
Copyright © 2020-2023  润新知