js 一/二维数组排序
JavaScript中数组排序方法
用到的最多的当然是封装好的sort()方法了
一:sort()方法怎么使用?
sort方法并不像我们想的那么容易使用,不是单纯的arr.sort()就行了,需要我们定义里面的回调函数!因为sort()方法默认情况下按照升序排列数组项,sort()方法会调用toString()转型方法,然后比较得到的字符串,即使我们比较的是数字,他也会把数字转为字符串以后再排序。
请看下面例子:
var arr1 = [, , , , , , , , ];
var arr2 = ['bangbang', 'father', 'mother', 'brother', 'sister', true, false, , , , ];
console.log(arr1.sort()) //很明显,这样不是我们要的结果,[ 0, 0, 1, 10, 16, 3, 3, 5, 9 ]
console.log(arr2.sort()); //[ 0,1,13,6,'bangbang','brother',false,'father','mother','sister',true] //传入自定义回调函数之后
function ascend(a,b){
return a-b;
}
//降序排列
function descend(a,b){
return b-a;
}
console.log(arr1.sort(ascend)); //[ 0, 0, 1, 10, 16, 3, 3, 5, 9 ]
console.log(arr1.sort(descend)); //[ 16, 10, 9, 5, 3, 3, 1, 0, 0 ]
二:用 sort 方法进行二维数组的排序。
var arr1 = [[,,],[,,,,],[,,,],[,,,,]];
function ascend(x,y){
return x[] - y[]; //按照数组的第4个值升序排列
}
function descend(x,y){
return y[] - x[]; //按照数组的第1个值升序排列
}
console.log(arr1.sort(ascend));
console.log(arr1.sort(descend));
当然还有其他的排序方法,再次我只说封装好的,其实排序有很多种,关键看你怎么使用!
三:顺便什么是reverse()方法?怎么使用?
reverse方法会反转数组项的顺序,请看如下示例:
var arr1 = [, , , , , , , , ];
var arr2 = ['bangbang', 'father', 'mother', 'brother', 'sister', true, false, , , , ];
console.log(arr1.reverse());//[ 3, 0, 9, 5, 16, 10, 3, 1, 0 ]
console.log(arr2.reverse());//[ 13,6,1,0,false,true,'sister','brother','mother','father','bangbang'
转载:http://blog.csdn.net/flyingpig2016/article/details/52901977
js 一/二维数组排序的更多相关文章
- JS:二维数组排序和获取子级元素
JS:二维数组排序和获取子级元素 1. 二维数组排序 1.按数值排序 var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]]; 如果我们要按每个子数组的第一列来排序要如 ...
- JS二维数组排序组合
需求是这样的:http://q.cnblogs.com/q/29093/ 这里简述一下: 现在有一个不确定长度的数组.比如:var temp=[["Fu","Hai&qu ...
- PHP二维数组排序(list_order)
/** * 对二维数组进行排序 * 模拟 数据表记录按字段排序 * * <code> * @list_order($list, $get['orderKey'], $get['orderT ...
- PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)
一.先看最简单的情况. 有两个数组: $arr1 = array(1, 9, 5); $arr2 = array(6, 2, 4); array_multisort($arr1, $arr2); pr ...
- php基础篇-二维数组排序 array_multisort
原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(a ...
- javascript二维数组排序
js使用sort()函数对二维数组快速排序的写法 作者:admin 时间:2015-7-3 9:31:4 浏览:1847 js数组的排序方法有很多,冒泡法,插入法等等,不过对于数组的排序来 ...
- PHP二维数组排序(感谢滔哥)
滔哥原创 /* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\|| ...
- 使用jquery.qrcode.js生成二维码
通常生成二维码的方式有两种:第一种是java代码的形式,第二种是通过Js方式. 在这里我做个记录,用js生成二维码,可以在官网下载源码:http://jeromeetienne.github.io/j ...
- 网站开发进阶(十四)JS实现二维码生成
JS实现二维码生成 绪 项目开发原语:已然花费半天的时间,仍旧未能将二维码显示在订单中.但是可以在单个页面中显示二维码,结合到angularjs的控制器中就失效了,自己是真的找不到其中的原因了.费解! ...
随机推荐
- 第十三篇、OC_UICollectionView的基本配置
- (UICollectionView *) categoryCollectionView { if (! _categoryCollectionView) { // 创建布局 UICollectio ...
- c 语言技巧
位运算 & 位逻辑与 | 位逻辑或 ^ 位逻辑异或 - 位逻辑反 >> 右移 << 左移 通过对数据本身的01编码进行处理,速度稍微快于普通运算符 如,10 / 2 = ...
- 揭密 Vue 的双向绑定
Vue 中需要输入什么内容的时候,自然会想到使用 <input v-model="xxx" /> 的方式来实现双向绑定.下面是一个最简单的示例 剖析Vue原理& ...
- thinkphp 5数据库操作
1.原生sql $options=Db::table('__MALL_POST__') ->alias('m') ->join('__MALL_CATEGORY_VALUE__ v','m ...
- 最全的PHP函数详解
usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_unti ...
- Java流(Stream)、文件(File)和IO
Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多格式,比如:基本类型.对象.本地化字符集等等. 一个流可以理解为一个数据的序列 ...
- visual studio cl -d1reportSingleClassLayout查看内存f分布
C:\Users\Administrator\Desktop\cppsrc>cl -d1reportSingleClassLayoutTeacher virtual.cpp 用于 x86 的 M ...
- CCPC 2016-2017, Finals
A. HDU 5999 The Third Cup is Free 简单模拟. B. HDU 6000 Wash n 件衣服, m 个洗衣机,k 个烘干机.每个洗衣机和烘干机需要不同的时间.问 n 件 ...
- Codeforces Round #461 (Div. 2) B. Magic Forest
B. Magic Forest time limit per test 1 second memory limit per test 256 megabytes Problem Description ...
- cf982d Shark
ref #include <algorithm> #include <iostream> #include <cstdio> #include <map> ...