从JavaScript二维数组排序说开去(1)

简介: 从JavaScript二维数组排序说开去(1)

JavaScript里面,数组是array,有一个方法sort,使用时需要定义判断函数,写成:

array1.sort(function(a,b){ return a-b; });


简单例子:

var a= [1,3,2];
console.log(a.sort(function(a,b){ return a-b; }));

输出

Array(3) [ 1, 2, 3 ]

那么下面对二维数组排序。如果我想对二维数组的第2列进行排序,怎么办?


首先得确保这个数组每一个元素都有第2列,就是每一个元素都应该是一个数组,并且至少有2个元素。在保证这个前提的基础上,我们就好写了:


array1.sort(function(a,b){
            return a[1]-b[1];
        });

将第2列的相减结果返回。那么,这里如果a[1]-b[1]是小于零的话,就不交换两个数的位置。


var da= [[1,4],[2,3],[1,3],[4,1],[5,7],[4,2]];
da;
    0: (2) [1, 4]
    1: (2) [2, 3]
    2: (2) [1, 3]
    3: (2) [4, 1]
    4: (2) [5, 7]
    5: (2) [4, 2]
    length: 6
    __proto__: Array(0)
da.sort(function(a,b){
            return a[1]-b[1];
        });
    0: (2) [4, 1]
    1: (2) [4, 2]
    2: (2) [2, 3]
    3: (2) [1, 3]
    4: (2) [1, 4]
    5: (2) [5, 7]

此时,da本身也变成了排序后的顺序。

da;

0: (2) [4, 1]
    1: (2) [4, 2]
    2: (2) [2, 3]
    3: (2) [1, 3]
    4: (2) [1, 4]
    5: (2) [5, 7]
    length: 6
    __proto__: Array(0)



目录
相关文章
|
4月前
|
前端开发 JavaScript 算法
使用 JavaScript 数组方法实现排序与去重
【10月更文挑战第21天】通过灵活运用 `sort()` 方法和 `filter()` 方法,我们可以方便地实现数组的排序和去重。同时,深入理解排序和去重的原理,以及根据实际需求进行适当的优化,能够更好地应对不同的情况。可以通过实际的项目实践来进一步掌握这些技巧,并探索更多的应用可能性。
131 59
|
4月前
|
分布式计算 JavaScript 前端开发
JavaScript:轻松创建二维数组的多种方法
本文探讨了如何使用 JavaScript 生成二维数组的多种方法,揭示了这些方法在编程中的灵活应用。文章首先通过介绍如何创建一维数组,为理解二维数组的生成奠定基础。接着,分析了几种常见的生成二维数组的方法,包括使用嵌套循环、Array.from()、Array.fill() 以及 展开运算符 和 map() 等技巧。每种方法都有其优缺点,开发者可以根据场景选择最合适的方案。
149 0
|
4月前
|
前端开发 JavaScript 索引
JavaScript 数组常用高阶函数总结,包括插入,删除,更新,反转,排序等,如map、splice等
JavaScript数组的常用高阶函数,包括遍历、插入、删除、更新、反转和排序等操作,如map、splice、push、pop、reverse等。
34 0
|
5月前
|
JavaScript 前端开发
JavaScript从二维数组抽取元素组成新数组的三种方法
JavaScript从二维数组抽取元素组成新数组的三种方法
|
5月前
|
JavaScript 前端开发
JavaScript从二维数组抽取若干元素组成新二维数组
JavaScript从二维数组抽取若干元素组成新二维数组
|
5月前
|
JavaScript 前端开发
用Javascript对二维数组DIY按汉语拼音的排序方法
用Javascript对二维数组DIY按汉语拼音的排序方法
|
5月前
|
JavaScript 前端开发
用JavaScript编程定义二维数组并初始化,然后输出元素值
用JavaScript编程定义二维数组并初始化,然后输出元素值
|
6月前
|
JavaScript
js实现模糊搜索和排序
js实现模糊搜索和排序
27 0
|
7月前
|
JavaScript
JS 【详解】双指针排序 -- 数组合并后递增排序
JS 【详解】双指针排序 -- 数组合并后递增排序
50 0
|
JavaScript 算法 前端开发
JavaScript 基础排序的实现(一)
作为一个有追求的前端,忙里偷闲(闲得发慌)地复习了一下基础的排序算法,以此文留念. 本篇主要记录O(n²)复杂度的基础算法O(nlogn)的算法将在下次有空(闲得发慌)时更新 在记录时发现Es6语法中的解构赋值与传统的中间变量交换相比效率低下,经过几次测试发现其耗时大约为交换中间变量的两倍 1.
1404 0

热门文章

最新文章

  • 1
    当面试官再问我JS闭包时,我能答出来的都在这里了。
    45
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    28
  • 3
    Node.js 中实现多任务下载的并发控制策略
    34
  • 4
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 5
    【JavaScript】深入理解 let、var 和 const
    49
  • 6
    【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
    47
  • 7
    【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
    57
  • 8
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    57
  • 9
    如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
    72
  • 10
    【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
    55