首页 > 编程知识 正文

如何对二维数组进行排序,js二维数组去重

时间:2023-05-04 05:50:06 阅读:34753 作者:3876

我们知道js默认提供sort函数,但默认情况下,该函数按数组内容的ascii代码的升序排列。 如何对二维数组进行排序? php调用multi_sort函数,但js中似乎没有这样的函数。 但是,没关系。 js的sort函数实际上也提供了参数,因此可以定义比较函数来对二维数组进行排序。

1、按数值排序,以下数组vararr=[ 1,2,3 ]、[ 7,2,3 ]、[ 3,2,3 ]; 现在,如何按每个子数组的第一列进行排序呢? 定义比较函数。 arr.sort (功能(x,y ) {returnx(0)-y ); ); 比较函数在这里的作用是什么? 实际上,数组按x、y的顺序复制数组元素。 例如,首先将arr[0]指定为x,将arr[1]指定为y,然后使用x[0] - y[0]。 根据返回的值,如果返回大于0的数,则将数组的x置于y之后,如果小于0,则将x置于y之前。 这是默认升序比较函数。 如果要按降序排序,只需更改比较方式,将其更改为返回y [0]-x [0]即可。 其中x[0]表示按第一列排序。 在这里也可以按其他列排序。 默认情况下,此处的排序会更改arr的数组结构,因此对arr进行排序时将从第一列开始按升序排列。

2、按字符串排序

用字符串排序怎么样? 使用js提供的localeCompare方法,

本地比较角色:按本地特定顺序比较两个字符串。

localeCompare方法的使用规则是stringobject.locale compare [ target ],如果stringobject小于target,则localecompare[]返回小于0的数字如果stringObject大于target,则方法返回大于0的数。 如果两个字符串相等,或者不根据本地排序规则区分,则此方法返回0。 本地规则是指使用操作系统基础对这些本地字符进行排序的规则。 缺省情况下,例如,比符号大的比较只是简单地比较两个字符的unicode数量的大小,而与许多语言不匹配。

例如,var arr=[[ '中'、'国' ]、[ '啊'、'的' ]、[呜'、'的' ]; arr.sort (功能(x,y ) ) returnx[0].localecompare ) y[0]; ); 因此,它按第一列中字符的拼音排序。 如果包含英语,默认情况下将英语放在前面。 纯英语的话,按字母顺序来,大写字母排在小写字母后面。 这允许对包含中文和中英混合在内的字符串进行排序。 要按降序排列,请使用与上述相同的方法,返回y [0].locale compare (x [0] ); 很好。

资料来源: http://apps.hi.Baidu.com/share/detail/45789334

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。