网站首页 > 技术文章 正文
好程序员web前端培训分享数组及排序、去重和随机点名,栈堆结构:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(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>
好程序员web前端培训官网:http://www.goodprogrammer.org/html5_class.shtml
猜你喜欢
- 2024-09-30 JavaScript数组_数组方法「二」(二十七)
- 2024-09-30 table组件,前端如何使用table组件打印数组数据
- 2024-09-30 前端数组改字符串方法 前端数组改字符串方法是什么
- 2024-09-30 javascript复制数组的三种方式 javascript复制粘贴
- 2024-09-30 第21节 检测数组、类数组及多维数组-Web前端开发之Javascript
- 2024-09-30 前端系列——ES6中循环数组的方法
- 2024-09-30 前端已死?请用TS写出20个数组方法的声明
- 2024-09-30 springboot项目中,前端如何传递一个自定义对象数组给后端
- 2024-09-30 带你走进javascript数组的世界 javascript数组操作方法
- 2024-09-30 每天学点 ES6 —— 数组(二) es6数组处理方法
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)