JavaScript实现多维数组多键值排序方法

虫儿飞0707

虫儿飞0707

2016-02-19 17:12

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐JavaScript实现多维数组多键值排序方法,赶紧看过来吧!

  JavaScript的数组排序函数 sort方法,默认是按照ASCII 字符顺序进行升序排列。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  arrayobj.sort(sortfunction);

  参数:sortFunction

  可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

  sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

  负值,如果所传递的第一个参数比第二个参数小。

  零,如果两个参数相等。

  正值,如果第一个参数比第二个参数大。

  以上的方法在一维的排序还是很方便的,但像SQL语句中的ORDER BY 一样的多键值排序由怎么做呢?

  多维数组的多键值排序,则需要复杂一些,但不需要用循环解决。实际解决的道理是一样的 。

  数字:

  以下的例子是将数字的多维数组按照第5列,第9列,第3列的顺序排序,像SQL语句中的ORDER BY col5,col9,col7。数字的时候可以直接两个项目相减,以结果作为返回值即可。

script language=javascript  var myArray = new Array();  for(var i=0;i10;i++ )...{    myArray[i]=new Array();    myArray[i][0]=Math.floor(Math.random()*10);        myArray[i][1]=Math.floor(Math.random()*10);    myArray[i][2]=Math.floor(Math.random()*10);    myArray[i][3]=Math.floor(Math.random()*10);    myArray[i][4]=Math.floor(Math.random()*10);    myArray[i][5]=Math.floor(Math.random()*10);    myArray[i][6]=Math.floor(Math.random()*10);    myArray[i][7]=Math.floor(Math.random()*10);    myArray[i][8]=Math.floor(Math.random()*10);  }    myArray.sort( function(x, y) ...{    return (x[0]==y[0])?((x[4]==y[4])?(x[8]-y[8]):(x[4]-y[4])):(x[2]-y[2])  });  for(var i=0;imyArray.length;i++ )...{    document.write(myArray[i].join(",") + "br/");  }/script

  字符:

  字符的时候sortFunction中的项目不能像数字一样直接相减,需要调用

  str1.localeCompare( str2 )方法来作比较,从而满足返回值。以下是多维数组的第1,2列作排序的情况。

function sortFunction(array) ...{  return array.sort( function(x, y) ...{  return (x[0]==y[0])?(x[1].localeCompare(y[1])):(x[0].localeCompare(y[0]))  });}

  因此arrayObject.sort( sortFunction )的排序功能还是很强大的,终于能够实现了SQL语句中的ORDER BY 一样的功能。

展开更多 50%)
分享

猜你喜欢

JavaScript实现多维数组多键值排序方法

Web开发
JavaScript实现多维数组多键值排序方法

数组排序方法介绍

flash教程
数组排序方法介绍

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Javascript 更新 JavaScript 数组的 uniq 方法

Web开发
Javascript 更新 JavaScript 数组的 uniq 方法

JavaScript中数组方法

Web开发
JavaScript中数组方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JavaScript 数组的 uniq 方法

Web开发
JavaScript 数组的 uniq 方法

利用递归把多维数组转为一维数组的函数

PHP
利用递归把多维数组转为一维数组的函数

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

『心情不好睡不着觉 - QQ伤感分组

『心情不好睡不着觉 - QQ伤感分组

小丸子说她很幸福 - QQ情侣分组

小丸子说她很幸福 - QQ情侣分组
下拉加载更多内容 ↓