JS数组排序方法实例分析
本文实例讲述了JS数组排序方法。分享给大家供大家参考,具体如下:
方法一.冒泡排序
思路:依次比较数组中的第一个元素和第二个元素,如果第一个元素大于第二个元素,则交换位置,所以需要两个函数:交换位置函数和比较函数
比较轮数为数组长度
var arr=[2,58,49,26,34]; function change(f,s){ var temp=arr[f]; arr[f]=arr[s]; arr[s]=temp; } for(var i=0;i<arr.length;i++){ for(var j=0;j<arr.length-1;j++){ if(arr[j]>arr[j+1]){ change(j,+j+1); } } } alert(arr);
方法二.选择排序
从数组中找到最小值,扔到数组第一位,然后从剩下数组中循环操作
var arr=[2,58,49,26,34]; function change(){ if(arr.length==1){ return arr; } var iMin=arr[0]; var index=0; for(var i=0;i<arr.length;i++){ if(arr[i]<iMin){ iMin=arr[i]; index=i; } } var prev=arr.splice(index,1); return prev.concat(change(arr)); } alert(change(arr));
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
相关推荐
-
Ajax遍历jSon后对每一条数据进行相应的修改和删除(代码分享)
废话不多说了,直接给大家贴代码了,具体代码如下所示: $.ajax({ url: "/business/findpersons.json", dataType: "json", type:"GET", success: function(doc) { var objs=eval(doc); for (var i = 0; i < objs.length; i++){ var personid=objs[i].personId; var na
-
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
刚和同事讨论了一个很有趣的问题,有个idea,需要记录用户在页面选中的内容,在ff和ie9下有w3c的dom2级事件createRange,这里不再累赘.主要问题是在IE6,7,8只能通过createTextRange选中热区.假如我们知道用户选择开始元素和偏移量,以及结束元素以及偏移量,那么我们可以用下面的例子把用户选择的内容用js给标记起来 复制代码 代码如下: <head> <script> function mark() { var b= document.getEleme
-
javascript数组去重方法分析
本文实例讲述了javascript数组去重方法.分享给大家供大家参考,具体如下: 方法一. 思路:创建一个新的空数组,循环遍历旧数组,用indexOf()方法,可以取得元素在数组中的位置,如果值为-1表示不存在.那么新数组用indexOf去获取老数组的每一个元素,如果值为-1表示不存在,就把他push到新数组里,最后输出新数组即去重后的数组 var arr=[24,56,74,89,24,56,78,09,24]; var new_arr=[]; for(var i=0;i<arr.length
-
javascript仿百度输入框提示自动下拉补全
本文实例讲解了javascript输入框自动下拉补全操作,仿百度.谷歌搜索框提示,具体内容如下 效果图: 具体代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="
-
JS经典正则表达式笔试题汇总
本文实例总结了JS经典正则表达式笔试题.分享给大家供大家参考,具体如下: 一.复习字符串的传统操作 如何获取一个字符串中的数字字符,并按数组形式输出,如 dgfhfgh254bhku289fgdhdy675gfh 输出[254,289,675] 分析:循环用charAt()的方法获取到每一个子字符串,判断他是不是在0~9之间,是就把他扔到准备好的数组里 var str="dgfhfgh254bhku289fgdhdy675gfh"; findNum(str); function fin
-
JSP + ajax实现输入框自动补全功能 实例代码
下面是我用ajax实现的输入框自动补全功能,数据库数据很少,大体模仿出了百度首页的提示功能,当然,人家百度的东西不只是这么简单的!先看运行效果: index.jsp(包含主要的js代码) 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath();
-
js自动闭合html标签(自动补全html标记)
复制代码 代码如下: <script type="text/javascript"> // Close HTML Tags -------------------------------------------- function closeHTML(str){ var arrTags=["span","font","b","u","i","h1",&qu
-
JS限制条件补全问题实例分析
本文实例分析了JS限制条件补全问题.分享给大家供大家参考,具体如下: 题目一.a和b两个变量,不用第三个变量来切换两个变量值 var a=5; var b=6; a=a+b; b=a-b; a=a-b; alert(a); alert(b); 题目二.有一个数n=5,不用for循环,怎样返回[1,2,3,4,5]这样的数组 方法一.用递归来进行遍历 var n=5; function show(){ var arr=[]; return (function(){ arr.unshift(n);
-
JavaScript利用正则表达式替换字符串中的内容
话不多说,请看具体实现代码 //从字符串'Is this all there is'中剪去'is': var str='Is this all there is'; var subStr=new RegExp('is');//创建正则表达式对象 var result=str.replace(subStr,"");//把'is'替换为空字符串 console.log(result);//Is th all there is var subStr=new RegExp('is','i');
-
遍历js中对象的属性和值的实例
今天优化项目时,遇到了关于"遍历js中对象的属性和值"的需求.之所以会有这个需求,是因为要做一个局部刷新表格内容的js插件.刚开始我去网上荡了一个js分页插件,但是智商实在捉急,搞了半天没搞出来!后来就怒了,干脆自己写一个好了.结果就遇到了这个问题! 问题:通过遍历属性名数组,获取对象的属性值失败 刚开始的错误代码如下: for(var i=0;i<dataList.length;i++) { var dataLine="<tr>"; for(va
-
JavaScript常见的五种数组去重的方式
大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN]; 第一种 思路:建立一个临时数组,用for循环去依次判断arr中的每个项在临时数组中是否有相同的值,如果没有则将这个值添加到临时数组,如果有相同的值则不添加,最后返回这个临时数组 代码: Array.prototype.removeDuplicate = function(){ var n = []; for
-
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
本文实例总结了javascript中数组(Array)对象和字符串(String)对象的常用方法.分享给大家供大家参考,具体如下: 综述:笔者经常将数组的方法和字符串的方法混淆,这里写篇日志,做个区分 1.字符串对象 String是JavaScript中的五种基本类型之一. (1)字符串对象的创建 例1: var str="Hello world"; 或者 var str=new String("Hello world") (2)charAt()方法 charAt(
随机推荐
- php简单实现多字节字符串翻转的方法
- vue+mockjs模拟数据实现前后端分离开发的实例代码
- Apache2.4和Apache2.2访问控制配置语法对比
- apache五合一程序建立PHP+CGI运行环境
- js判断是否含有GBK以外的字符的函数
- JavaScript原生编写《飞机大战坦克》游戏完整实例
- 探讨Ajax中同步与异步之间的区别
- 效率较高的php下读取文本文件的代码 原创
- C++设计模式之桥接模式
- Bootstrap学习笔记之环境配置(1)
- [转]去百度面试的javascript 收获
- Spring Boot Admin 的使用详解
- MySQL中触发器入门简单实例与介绍
- 11种ASP连接数据库的方法
- jQuery实现两列等高并自适应高度
- 用JavaScript 处理 URL 的两个函数代码
- JavaScript数值千分位格式化的两种简单实现方法
- 深入解析int(*p)[]和int(**p)[]
- SpringBoot快速搭建web项目详细步骤总结
- linux Dig命令使用大全