JavaScript中内置sort函数的一些坑_js sorted()-程序员宅基地

技术标签: JavaScript  

比如我们一个arr = [10,5,9,2],如果我们arr.sort(),会出现这种结果:[10,2,5,9],实在是有点懵比,

这是因为JavaScript中的sort是将Array转换成字符串了在进行比较排序的,也就是说‘1’的ascii比‘2’小

 

那我们要怎么改进呢?

JavaScript中的sort是一个高级函数,可以接受一个函数作为参数

arr.sort(function (x, y) {
    if (x < y) {
        return -1;
    }
    if (x > y) {
        return 1;
    }
    return 0;
});

另外我想说一下python中的sorted是怎么实现的

sorted除了可以直接用obj.sorted()调用之外,还可以指定sorted的key,也就是排序算法,

比如

arr = [-21,13,-5,6,8],arr.sorted()就会得到[-21,-5,6,8,13]

但是如果我们这样呢,arr.sorted(key=abs),代表对数组元素取绝对值后在进行排序,这是怎么执行的呢

其实啊,把[-21,-5,6,8,13]的每个元素都取绝对值,得到[21,5,6,8,13],

与源列表                                            进行映射             [-21,-5,6,8,13],然后对上面的进行排序得到[5,6,8,13,21],

然后得到最终结果[-5,6,8,13,-21]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/HWQlet/article/details/106029564

智能推荐

Spark系列文章 Spark3部署,java实现Pi、WordCount程序,任务部署到yarn_java实现spark pi任务-程序员宅基地

文章浏览阅读885次。Spark系列文章 程序部署到yarnApache Spark 部署Spark下载上传,解压配置Spark使用yarn做资源管理让我们先把yarn可调度的资源范围调大一些运行一个example检测配置的情况java实现Spark程序引入依赖码代码:写一遍Pijava实现WordCount打包上传到服务器运行异常情况的处理查看job运行状况成功的输出环境组件版本CentOS..._java实现spark pi任务

线段树--hotel usaco feb08gold_usaco2008feb-gold hotel-程序员宅基地

文章浏览阅读632次。【Usaco Feb08 Gold】旅馆Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription奶牛们最近的旅游计划,是到苏必利尔湖畔,享受那里的湖光山色,以及明媚的阳光。作为整个旅游的策划者和负责人,贝茜选择在湖边的一家著名的旅馆住宿。这个巨大的旅馆一共有N (1 贝茜一行,以及其他慕_usaco2008feb-gold hotel

windows下使用keytool生成ssl自生成证书并在tomcat7中配置-程序员宅基地

文章浏览阅读4k次。一:生成ssl证书首先需要生成一个ssl证书,直接打开cmd,默认已经配置jdk的环境变量,输入:keytool -genkey -alias tomcat -keyalg RSA -keystore目录/tomcat.keystore其中-genkey 指生成keystore ,-alias 指别名,-keyalg 指使用的加密算法,-keystore 后面跟上生成的keys

java多表多字段的模糊匹配_Java中实现对表中多个字段的模糊查询(Oracle)-程序员宅基地

文章浏览阅读949次。public UserVO fuzzyQuery(String keyword) {UserVO user=null;ResultSet rs = null;PreparedStatement prep = null;try {String sql="select * from users where status=1 and (username like '%'||'"+keyword+"'||..._java需要通过某一个输入值模糊搜索某一张表中所有的字段,如何实现

Elsevier期刊LaTeX投稿过程中注意的问题_supplementary material for on-line publication onl-程序员宅基地

文章浏览阅读1.2w次,点赞13次,收藏35次。Elsevier期刊LaTeX投稿过程中注意的问题上传文件神奇的问题上传文件可以上传整个文件的压缩包,上传后会自动解压成单个文件。【注意1】:无法上传嵌套的文件夹,因此所有文件包括.tex和.pdf都应放置在同一文件夹中,同时注意修改图片引用路径。【注意2】:.tex文件选成Manuscript类型,elsarticle.cls选成Supplementary material for on-line publication only,(似乎可以不用上传elsarticle.cls)神奇的问题错_supplementary material for on-line publication only

php 加密解密方法,php加密方法与解密方法-程序员宅基地

文章浏览阅读1k次。测试文件test.php1.加密方法:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 长度$q1 .= 64_decode -> base64_decode*/$s = '$' . $q6 . '=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%...

随便推点

Spring+SpringMVC+MyBatisPlus详解_springmvc mybatisplus-程序员宅基地

文章浏览阅读2.7k次,点赞5次,收藏27次。前言:学习过程中了解到MyBatis-Plus 功能非常强大,于是乎学了起来,结合已有框架进行整合,但是发现好多博客都是与SpringBoot进行整合的。所以总结一个与spring+SpringMVC整合详细笔记供大家参考。后续也会总结一个与springBoot的整合,毕竟SpringBoot更为主流。第一步:搭建Maven架构、完善项目结构。第二步:在pom.xml文件中导入所需要的依赖<?xml version="1.0" encoding="UTF-8"?><project_springmvc mybatisplus

java see 作用_java – 为什么Eclipse在使用@See引用它时会导入一个类-程序员宅基地

文章浏览阅读313次。为什么Eclipse为Javadoc @see注释的目标类添加导入?如果你通过findbugs或PMD运行它,他们会抱怨它是一个未使用的导入.哪个是正确的?我个人不明白为什么eclipse想要导入它.import java.util.List;/*** @see List*/“链接”也是如此import java.util.List;/*** {@link List}*/有什么想法为什么?解决方法..._elicpse @see

NPOI导入excel-程序员宅基地

文章浏览阅读312次。using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;usin_npoi导入excel

uniapp 小程序实现中间突起tabbar_uniapptabbar中间凸起怎么写-程序员宅基地

文章浏览阅读5.1k次,点赞4次,收藏24次。先看下效果实现步骤1.先引入uview ui,不会的可以看下我另外一篇文章,写的很详细uniapp 中uview-ui的使用教程https://blog.csdn.net/hu104160112/article/details/120076812?spm=1001.2014.3001.55012.创建tabbar 组件及页面3.pages.json文件中配置{ "easycom": { "autoscan": true, "custom": { "^uni-(.*)": _uniapptabbar中间凸起怎么写

[JavaScript][异步]Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?_js primise 是同步还是异步-程序员宅基地

文章浏览阅读2.3k次,点赞3次,收藏3次。const promise = new Promise((resolve, reject) => { console.log(1) resolve() console.log(2)})promise.then(() => { console.log(3)})console.log(4)执行结果是:1243promise构造函数是同步执行的,then方法是异步执行的..._js primise 是同步还是异步

Unity 鼠标控制/手指控制 物体左右惯性滑动旋转,上下限制角度一些脚本总结_unity惯性滑动-程序员宅基地

文章浏览阅读3.9k次,点赞3次,收藏33次。总结一些物体惯性旋转方式,项目中用到了第二种,也推荐旋转相机,可以用一个单独的相机照射模型。另外,触控屏获取 Input.GetAxis(“Mouse X”) 获取不到,使用 Input.touches[0].deltaPosition.x 来代替。物体自动旋转脚本放在 Cube 上using UnityEngine;//物体添加刚体,忽略重力// 自动围绕 Y 轴旋转..._unity惯性滑动

推荐文章

热门文章

相关标签