js数组的sort排序(获取中位数)
默认的sort排序,不指定参数,将会发现排序结果不是我们想要的真正排序,如下:
A=[1,2,33,22,14,5,132]
A.sort()
//[1, 132, 14, 2, 22, 33, 5]
结果不是按照升序或降序排列,而是按照第一个字符比较大小接着是第二个字符比较大小来排序,那如何按照正常的升序或降序来排列呢?
需在sort参数指定一个函数做排序(如果是降序就是y-x即可)
A.sort(function(x,y){return x-y})
//[1, 2, 5, 14, 22, 33, 132]
在这个排序的基础上,我们来获取数组的中位数(中间的那个数字,如果中间数字是两个就求平均值)
let getMedian=arr=>{arr.sort((x,y)=>{return x-y})if(arr.length%2==0){return (arr[arr.length/2 -1]+arr[arr.length/2])/2}else{return arr[Math.floor(arr.length/2)]}
}getMedian(A)//14B=[1,2,33,22,14,5,132,99]
// [1, 2, 5, 14, 22, 33, 99, 132]
getMedian(B)//18((14+22)/2)
还有一种类似字典数组的排序,按照key值和value值来排序
D=[{k:12,v:34},{k:44,v:2},{k:7,v:8},{k:12,v:20},{k:9,v:34}]
Darr=D.sort(function(x,y){if(x.k==y.k){return x.v-y.v}else{return x.k-y.k}
})//[{k:7,v:8},{k:9,v:34},{k:12,v:20},{k:12,v:34},{k:44,v:2}]
for(i=0;i<Darr.length;i++){console.log(Darr[i])
}
Darr.forEach(function(d){console.log(d)
})
js数组的sort排序(获取中位数)相关推荐
- js数组的sort排序的原理和应用
1.js sort()方法的应用: 首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串( ...
- js数组的sort排序详解
http://www.cnblogs.com/longze/archive/2012/11/27/2791230.html <body> <div> sort()对数组排序,不 ...
- js 数组对象sort()排序(升序降序)
升序 let testArr = [{ name: 'tom', age: '12' },{ name: 'marry', age: '17' },{ name: 'xxx', age: '14' } ...
- Js中的Sort排序方式
Js中的Sort排序方式 这里只列出部分排序方式 1.Sort排序 Sort排序是数组内置函数,但他的排序是根据系统字符默认排序 //数组const arr = [3,4,2,3,123,35,65, ...
- Array数组对象sort排序方法
数组sort排序方法 Array数组对象中的sort方法是根据数组中数组元素的字符编码进行排序的,所以对数字的排序,会跟想要的升序结果不一样 通过设置sort()方法的参数可以按照自定义的排序方式对数 ...
- 数组方法 sort() 排序错乱问题
一.问题 在JavaScript中,数组使用sort()后发现有排序不正确的情况,如下: let arr = [1, 2, 3, 10, 20, 30] arr.sort() console.log( ...
- 数组的sort()排序
目录 1.sort函数的基本用法 2.sort函数接受一个函数作为参数 3.数组中包含对象进行排序 1.sort函数的基本用法 数组的sort方法,默认按照字母顺序升序排序,更准确地说是按照ASCII ...
- JS数组中SORT方法使用详解
1.sort() 方法用类似Map原地算法对数组的元素进行排序,并返回数组,会改变原数组为排序好的数组(重点:会改变原数组) 2.arr.sort([compareFunction]) ①:该方法传入 ...
- 对vector<int> 的数组使用sort排序出错
刷题时,对于多个vector数组按照第二个元素的大小进行排序,其实很简单. 力扣1710. Maximum Units on a Truck 但是一开始代码写的是 class Solution {pu ...
最新文章
- Chapter 4 Invitations——4
- Appium环境安装
- Android官方技术文档翻译——Gradle 插件用户指南(7)
- [王晓刚]深度学习在图像识别中的研究进展与展望(转发)
- InfluxData【付诸实践 01】SpringBoot 集成时序数据库 InfluxDB 应用分享(InfluxDB实例+Feign接口调用InfluxDB API)源码分享
- Spring Security——简单第三方OAuth2登录自动配置——GitHub登录DEMO
- MySQL主从复制原理应用基础
- 找不到本地服务器,在本地站点中找不到全局编录服务器
- Ant in Action读书笔记(三):在Ant中导入环境变量
- 高版本(3.9版本)python在anaconda安装opencv库及skimage库(scikit_image库)诸多问题解决办法
- memcached演练(2) 访问memcached服务
- 工程实践:如何规范地打印程序日志?
- CentOS7 配置免密登陆
- ccf中文期刊目录_37本!中国计算机学会CCF首次发布推荐中文科技期刊目录
- 信号与系统实验四 LTI系统的时域分析
- SQL语句:联合查询
- 一年级同音字心田花开汇总资料(附拼音)
- HTML5期末大作业:京东网站设计——仿京东(7页) 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
- 如何清理微信文件夹占用的巨大空间
- 新型信用卡MasterPass
热门文章
- JavaScript模块化思想
- CSS 两列布局 之 左侧适应,右侧固定 3种方式
- C++头文件中定义全局变量在多次引用时出现变量多次定义符号冲突的解决办法...
- 使用 ConnectionStringBuilder 对象创建精确连接字符串
- 【转载】关于网页尺寸的设置
- 大数据之-Hadoop之HDFS的API操作_配置参数的优先级说明_以设置hdfs文件副本数量参数为案例---大数据之hadoop工作笔记0057
- k8s核心技术-Controller(statefulSet)_部署有状态应用---K8S_Google工作笔记0033
- 持续集成部署Jenkins工作笔记0017---17.整合GitHub的持续集成环境要点说明
- SpringCloud工作笔记081---SpringCloud Hystrix Turbine(断路器聚合监控)的基本使用
- Docker工作笔记002---CentOS7 Docker 安装