小小千想和您聊一聊

当前位置: 首页> 技术分享> 数组及排序、去重和随机点名

数组及排序、去重和随机点名

  栈堆结构:

  堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。

  栈:存放的是路径;容量有限(在一开始被定义之后就不会改变了);先进后出(FILO)first In

  Last Out

  堆:路径映射的数据;容量无限(因为一直可能被改变);列队优先,先进先出(FIFO)first In Last Out

  如果我们把数组理解为栈堆结构的话,那么

  var arr = [1,2,3,4,5,6 ];

  那么arr就是栈 他是一个路径 : 找到数据的存储层;

  数据 [1,2,3,4,5,6] 就是堆 ;

  如果我们想要 改变堆中的数据的话,那么我们可以用push()方法向尾部添加一个数据,或者用pop()方法删除尾部数据。

  数组:

  for-in(结合数组或对象);

  数组的概念,一组(一般情况下相同类型)的数据;

  下标(索引)的概念;

  创建数组

  var arr= new Array(10); //创建一个包含 10 个元素的数组;

  var arr2= new Array('杨怀智',100,'教师','辽宁');//使用构造函数创建;

  var arr3 = [1,2,3,4,5];

  静态赋值

  arr[0] = 5;

  arr[1] = 12;

  arr[2] = 4;

  动态赋值

  for(var i=0; i<5; i++){

  arr[i] = Math.random();

  }

  数组对象自带的属性:length代表数组有多少数据项;

  遍历访问数组 普通for循环和 forEach循环

  arr.forEach(function(element,index,Arr){

  })

  push/pop、unshift/shift方法

  arr.push('BJ'); //数组末尾添加一个元素

  arr.unshift('TJ'); //数组开头添加一个元素

  var str = arr.pop(); //移除末尾一个元素,并返回该元素

  var str = arr.shift(); //移除开头一个元素,并返回该元素

  队列结构:

  练习:找出所有1-100之间7的倍数和包含7的数字

  倒序reverse方法;

  arr.reverse()方法不会创建新的数组,而是将原有数组顺序进行了改变;

  var arr=[1,2,3]

  arr.reverse();

  console.log(arr)//3,2,1

  从小到大排序sort方法 (数字的排序)

  冒泡排序算法:

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
		<script>
			var arr = [2, 333, 1, 4, 6, 5, 7, 8];
			for (var i = 0; i < arr.length - 1; i++) {
				for (var j = 0; j < arr.length - i; j++) {
					var ls;
					if (arr[j] > arr[j + 1]) {
						ls = arr[j];
						arr[j] = arr[j + 1]
						arr[j + 1] = ls
					}
				}
			}
			console.log(arr)
		</script>
	</head>
	<body>
	</body>
</html>

  选择排序算法:


<!doctype html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
		<script>
			var arr = [3, 4, 1, 5, 2]
			for (var i = 0; i < arr.length; i++) { //趟数
				var min = arr[i];
				var index = i;
				for (var j = i; j < arr.length; j++) {
					if (min > arr[j]) {
						min = arr[j];
						index = j;
					}
				}
				arr[index] = arr[i];
				arr[i] = min;
			}
			document.write(arr);
		</script>
	</head>
	<body>
	</body>
</html>

  案例:去重

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<script>
			var arr = [11, 2, 33, 4, 2, 11, 3, 44, 33, 2]
			arr.sort();
			var arr2 = [arr[0]]
			for (var i = 0; i < arr.length; i++) {
				if (arr[i] != arr2[arr2.length - 1]) {
					arr2.push(arr[i]);
				}
			}
			alert(arr2)
		</script>
	</head>
	<body>
	</body>
</html>

  随机点名程序:

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<script>
			document.onclick = function() {
			var aName = ['杨怀智1', '杨怀智3', '杨怀智4']
				var rad = Math.round(Math.random() * 2);
				document.write(aName[rad])
			}
		</script>
	</head>
	<body>
		随机点名
	</body>
</html>

上一篇:HTML5工具初识之网页编辑器

下一篇:移动前端开发和web前端开发的区别

QQ技术交流群

千锋HTML5官方①群
791201477

加入群聊