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程序设计有所帮助。
相关推荐
-
JSP + ajax实现输入框自动补全功能 实例代码
下面是我用ajax实现的输入框自动补全功能,数据库数据很少,大体模仿出了百度首页的提示功能,当然,人家百度的东西不只是这么简单的!先看运行效果: index.jsp(包含主要的js代码) 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath();
-
JS经典正则表达式笔试题汇总
本文实例总结了JS经典正则表达式笔试题.分享给大家供大家参考,具体如下: 一.复习字符串的传统操作 如何获取一个字符串中的数字字符,并按数组形式输出,如 dgfhfgh254bhku289fgdhdy675gfh 输出[254,289,675] 分析:循环用charAt()的方法获取到每一个子字符串,判断他是不是在0~9之间,是就把他扔到准备好的数组里 var str="dgfhfgh254bhku289fgdhdy675gfh"; findNum(str); function fin
-
JavaScript常见的五种数组去重的方式
大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN]; 第一种 思路:建立一个临时数组,用for循环去依次判断arr中的每个项在临时数组中是否有相同的值,如果没有则将这个值添加到临时数组,如果有相同的值则不添加,最后返回这个临时数组 代码: Array.prototype.removeDuplicate = function(){ var n = []; for
-
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);
-
js自动闭合html标签(自动补全html标记)
复制代码 代码如下: <script type="text/javascript"> // Close HTML Tags -------------------------------------------- function closeHTML(str){ var arrTags=["span","font","b","u","i","h1",&qu
-
遍历js中对象的属性和值的实例
今天优化项目时,遇到了关于"遍历js中对象的属性和值"的需求.之所以会有这个需求,是因为要做一个局部刷新表格内容的js插件.刚开始我去网上荡了一个js分页插件,但是智商实在捉急,搞了半天没搞出来!后来就怒了,干脆自己写一个好了.结果就遇到了这个问题! 问题:通过遍历属性名数组,获取对象的属性值失败 刚开始的错误代码如下: for(var i=0;i<dataList.length;i++) { var dataLine="<tr>"; for(va
-
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');
-
javascript仿百度输入框提示自动下拉补全
本文实例讲解了javascript输入框自动下拉补全操作,仿百度.谷歌搜索框提示,具体内容如下 效果图: 具体代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="
-
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
刚和同事讨论了一个很有趣的问题,有个idea,需要记录用户在页面选中的内容,在ff和ie9下有w3c的dom2级事件createRange,这里不再累赘.主要问题是在IE6,7,8只能通过createTextRange选中热区.假如我们知道用户选择开始元素和偏移量,以及结束元素以及偏移量,那么我们可以用下面的例子把用户选择的内容用js给标记起来 复制代码 代码如下: <head> <script> function mark() { var b= document.getEleme
-
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
-
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
本文实例总结了javascript中数组(Array)对象和字符串(String)对象的常用方法.分享给大家供大家参考,具体如下: 综述:笔者经常将数组的方法和字符串的方法混淆,这里写篇日志,做个区分 1.字符串对象 String是JavaScript中的五种基本类型之一. (1)字符串对象的创建 例1: var str="Hello world"; 或者 var str=new String("Hello world") (2)charAt()方法 charAt(
-
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
随机推荐
- Python如何实现MySQL实例初始化详解
- 用JavaScrip正则表达式验证form表单的方法
- 详解Mysql中的JSON系列操作函数
- js获取网页高度(详细整理)
- 基于代数方程库Algebra.js解二元一次方程功能示例
- 为Python的web框架编写MVC配置来使其运行的教程
- javascript中setTimeout和setInterval的unref()和ref()用法示例
- Android 详解ThreadLocal及InheritableThreadLocal
- PHP定时执行计划任务的多种方法小结
- 分享JavaScript获取网页关闭与取消关闭的事件
- 用JS实现图片轮播效果代码(一)
- 基于javascript实现彩票随机数生成(升级版)
- jQuery实现表格行和列的动态添加与删除方法【测试可用】
- script_tool_for_linux.bash: Linux 环境下的 hosts 一键部署脚本
- 分享27个jQuery 表单插件集合推荐
- 绑定winform中DataGrid
- 浅谈springboot 属性定义
- javascript 事件绑定问题
- 亲自动手编写Android通用刷新控件
- JS计算两个时间相差分钟数的方法示例
