本资源文档详细介绍了JavaScript编程语言中的一些基础概念和实用技巧,包括排序算法、数据复制和正则表达式应用。主要内容分为以下几个部分: 1. 冒泡排序:文档首先展示了冒泡排序算法的实现。冒泡排序是一种简单的排序算法,通过比较相邻元素并交换它们的位置,重复这个过程直到整个数组有序。在提供的代码中,`BubbleSort`函数接收一个数组`arr`,通过两个嵌套循环遍历数组,当发现相邻元素逆序时,交换它们的位置,从而达到升序排列。这种排序算法的时间复杂度是O(n^2),适用于小型数据集。 2. 选择排序:`changeSort`函数展示了另一种排序算法——选择排序。选择排序每次从未排序的部分选择最小(或最大)的元素,将其放到已排序部分的末尾。虽然选择排序同样具有O(n^2)的时间复杂度,但其内部逻辑与冒泡排序有所不同,这里主要强调了对数组进行比较和元素交换的过程。 3. 深拷贝:`clone`函数用于实现对象的深拷贝。JavaScript中的深拷贝不同于浅拷贝,它会递归地创建新对象,确保子对象也被复制,而非仅仅复制引用。当遇到数组或对象时,函数会根据不同类型进行处理,确保数据独立性。 4. JSON深拷贝:文档提到的`this.resCopy = JSON.parse(JSON.stringify(res.data))`这一行代码是将原始对象转换为JSON字符串再解析回来,实现了对象的深拷贝,确保在处理复杂数据结构时数据的安全复制。 5. 邮箱验证正则表达式:正则表达式`/^[a-zA-Z0-9_]{3,12}@[A-z0-9_]{2,12}(\.com|\.cn|\.com\.cn)$/g`被用来检查字符串是否符合邮箱格式。该正则表达式匹配了大部分常见邮箱格式,包括用户名长度、@符号、顶级域名等要求,并使用全局搜索标志`g`,表示可以匹配多组。 6. 打印素数:最后部分提到的是一个用于生成并打印2到99之间的素数的简单循环。通过嵌套循环,对每个数字进行质数判断,若数字只能被1和自身整除,则打印该数字,这是基本的素数筛选算法。 该文档提供了JavaScript编程中的基本排序算法、数据复制技术以及正则表达式的实用应用,对于初学者和进阶开发者都具有一定的参考价值。
var arr = [9, 8, 7, 6, 5, 4];
function BubbleSort(arr){
//决定比较几轮
for(var i = 0; i < arr.length - 1; i++){
//决定每一轮比较多少次
for(var 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;
}
}
}
}
BubbleSort(arr);
console.log(arr);
//2.选择排序
var arr = [9, 8, 7, 6, 5, 4];
function changeSort(arr){
//决定比较几轮
for(var i=0;i<arr.length-1;i++){
//决定每一轮比较多少次
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解