【JavaScript】数组对象重排序方法 sort

8155源码编译DSP(ubuntu环境下) 一.设置环境变量 -users:/$ sudo gedit ~/.bashrc #set adsp cdsp tools path #export ARMLMD_LICENSE_FILE=<LICENSE FILE INFO> #export ARMTOOLS=RVCT221 #export ARMROOT=/pkg/asw/compilers/arm/ADS1.2 #export ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/2.2BLD593 阅读详情

由于在重新复习js的过程中,再一次接触到了js数组对象排序方法之一——sort(),先简单讲一下sort()方法的用法:
主要用于数组对象的排序,可以升序,也可以降序,但存在一个问题,如下代码:

var arr = [0, 3, 2, 16, 15, 10];
arr.sort();
console.log(arr); //[0, 10, 15, 16, 2, 3]

虽然该方法对数组进行了排序,但返回的数组却并不是按照数值大小进行的排序,因为sort()方法会调用每个数组元素的toString()转型方法将元素转化为字符串进行比较,而字符串比较的是ASCII码进行比较:

var a = '10';
var b = '15';
a.charCodeAt(); // Ascll 49
b.charCodeAt(); // Ascll 51
console.log(a < b); //true

所有这种情况并非最佳方案,这个时候就需要给sort()方法添加一个比较函数(compare),原理有点不太懂:

var arr = [0, 3, 2, 16, 15, 10];
function compare(a, b) {
    //a位于b之前
    if (a < b) {
        return -1; //升序返回-1 降序返回1
    } else if (a > b) {
        return 1;
    } else {
        return 0;
    }
}
arr.sort(compare); //升序
console.log(arr6); //[0, 2, 3, 10, 15, 16]
var arr = [0, 3, 2, 16, 15, 10];
function compare(a, b) {
    return a - b; //a-b 升序   b-a 降序
}
arr.sort(compare); //升序
console.log(arr6); //[0, 2, 3, 10, 15, 16]
Devexpress16.2.6破解工具 Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具 立即下载

相关推荐

第1关:STL模板之queue实例一:最少个数

头歌自创答案

xiyunSacire的博客 817

数组(数组对象)排序

排序

ltc_Yan的博客 582

接口调试必看:status显示canceled的3种常见原因及修复方法

本文深度解析了接口调试中status显示canceled的三种核心原因:网络层中断(如请求超时)、应用层逻辑主动取消(如请求竞态、组件卸载)以及用户交互与浏览器行为。文章提供了从诊断到修复的系统性方案,包括分析Network Timing、使用Axios CancelToken、优化请求策略与性能,帮助开发者从根本上解决这一常见问题。

bb456的博客 935

JavaScript实现一个函数,将一个对象的属性按照特定顺序重新排列实现原理以及多种方法,例如按照属性名的字母顺序排列实现原理以及多种方法

假设我们有一个自定义的属性顺序数组,我们可以借助Map来实现按照这个顺序排列对象属性。c: 3,a: 1,b: 2// 自定义属性顺序数组// 创建一个Map对象// 按照自定义顺序将对象属性添加到Map中// 如果原对象中有这个属性// 就把属性名和属性值添加到Map中});// 将Map转换回对象// Object.fromEntries方法可以把Map转换为对象,这样就得到了按自定义顺序排列属性的对象。

前端大白话 1117

OpenCV和Halcon分别实现彩色图像的白平衡效果

实现白平衡算法中的灰度世界法,能有效改善图像发红/发蓝/发绿的现象 1、OpenCV #include <opencv2/opencv.hpp> using namespace cv; int main() { Mat g_srcImage,dstImage; vector<Mat> g_vChannels; g_srcImage = im...

$firecat利白的代码足迹$ 2828

树莓派5使用CSI摄像头 | 树莓派5接上CSI摄像头后命令行操作显示检测无设备

此系列用于记录树莓派5的一些操作,这篇文章讲述树莓派5如何使用CSI摄像头。

beyourself_he的博客 8795

数组对象中 根据对象中某个值大小重新排序数组sort方法

shuju 为 数组对象,传sum给比较函数。数据占位自动排序,改变原数组不生成新数组 shuju.sort(this.compare("sum")); compare(p){ //这是比较函数 return function(m,n){ var a = m[p]; var b = n[p]; return b - a; //降序 } }, ...

liuxiaocaie的博客 422

直击高频编程考点:字符串知识及经典算法题总结

字符串相关基本练习题总结(最长公共子串、最长回文子串、最长无重复字符子串、最小覆盖子串、字符串相乘、中文数字表达转实际数字格式等)

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

vue 数组内对象有对应 id,如何重新排序的问题

如果你使用 Vue.js 来管理数据,那么建议不要直接在数据数组上进行排序,因为这可能会导致 Vue.js 在重新渲染视图时出现问题。计算属性,因此 Vue.js 将自动重新计算和更新博客列表,以确保最新的博客显示在列表的顶部。方法将修改原始数组,因此,如果你不想修改原始数组,可以首先对其进行副本,然后对副本进行排序。如果你想重新排序一个Vue中的数组,其中包含对象,每个对象都有一个对应的。这将返回一个新的排好序的数组,其中每个对象的。这将返回一个新的排好序的数组,其中每个对象的。

doudouyifaya的博客 2111

围绕国产化操作系统以及人大金仓地理空间库的GIS的解决方案,含超详细部署步骤以及与QGIS,GeoServer,PostGlS Shapefile lmport/Export Manager的连接步骤

人大金仓软件 2.1软件的下载以及授权的相关文件插件 2.2上传至虚拟机 2.3KingbaseES V8R6数据库部署过程 2.3.1创建安装用户 2.3.2赋权 2.3.3.创建安装目录且赋权 2.3.4 准备挂载 2.4kingbase安装方法 2.7postgis安装 3 人大金仓数据库与QGIS的连接 4 人大金仓数据库与PostGlS Shapefile lmport/Export Manager的连接 5 人大金仓数据库与geoserver的连接

挣钱花388的博客 2590

Xilinx平台SRIO介绍(五)示例工程Example Design介绍

理解IP的使用,少不了Example Design的学习。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

js如何对数组进行排序(包括数组对象)

1.字符串排序 sort() var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序 注意:使用 sort() 对数值进行排序会产生错误,因为此方法是按字符串顺序进行排序的,如 “25” 大于 “100”,因为 “2” 大于 “1”。 2.反转数组,r...

欢迎光临 9035

宇树 Qmini 双足机器人完全开源:3D打印+5小时组装,新手也能玩转!

教育教学,成为学校里的竞赛竞技,实验课程,论文设计的本体;开发者可以根据开源资料轻松集齐所有零部件,结构件可全部通过3D打印完成(几乎完全不需要任何机加工零部件),搭配宇树的高可靠性电机和标准电池,客户打印完零部件后,大概仅需要3~5小时的手工组装即可得到一只可爱的Qmini小双足机器人本体。一起推动机器人的未来发展,创新没有边界,创造力是无限的,Qmini就是你的第一步,如果你也想做一个能动、能学、还能萌的小双足机器人,现在就可以动手了,全开源、真低门槛、只差你的3D打印机和一点点耐心。

雕爷学编程 1889

Array 重排序详解

重排序需求: 当我们拿到一组数据之后,很大可能是用Array类型存放的。那么我们在使用的过程中,很可能需要对数据内的元素进行重新排序,让页面显示出我们需要的顺序,或者让数据按照我们需要的顺序排列。 重排序方法: 1. reverse() 2. sort() reverse() 说明:该函数反转数组的顺序 var values = [1, 2, 3, 4, 5]; values.re...

zlingyun的博客 562

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

第二章 JS进阶 【4. Math(数学对象)】

6.  some  every方法     some()判断数组是否有一项符合条件     every()判断数组是否所有项都符合条件 7.  reduce方法 reduce 遍历数组,将上次结果与当前遍历项传递给下一个程序 ,返回值作为下一个结果,最终遍历完成返回一个累积的结果。 he = arr.reduce(function(上次结果,数组项,项索引,数组){},参数2代表初始值) 8.  冒泡排序 冒泡排序: 依次比较相邻的元素,如果和排序规则不同,则交换量元素。然后从头进行再次循环,直

2503_92667126的博客 2010

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

轻松学习JavaScript九:JavaScript对象和数组

许多高级编程语言都是面向对象的,比如C++、C#和Java等高级程序设计语言,那么一种面向对象语言有哪些基 本要求呢?下面我们就通宿地说一下面向对象的一些知识。        一种面向对象语言需要向开发者提供四种基本能力:        (1)封装:把相关的信息(无论数据或方法)存储在对象中的能力        (2)聚集:把一个对象存储在另一个对象内的能力        (3)继承:由

life is wonderful 2526

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JavaScript中常用数组对象汇总

总结JS中常用数组对象 1. 检测方法 ① isArray() 用来判断此变量是否为数组 返回boolean值 let arr = '字符串' let arr2 = ['数组'] console.log(arr.isArray()) // false console.log(arr2.isArray()) // true 2. 转换方法 ① toString() arr.toString() toString() 把对象转换成字符串并返回 let arr = [1,2,3,4,5] let num =

abxxcd的博客 718

第一章 web前端开发工程师--JavaScript 初级程序设计 1-14 JavaScript对象中的方法

JavaScript对象中的方法 本节课所讲内容: JavaScript 对象中的方法 主讲教师:Head老师 一.JavaScript 对象中的方法 默认情况下,数组字符串都会以逗号隔开。如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。 var box = ['Head老师', 28, 'teacher']; alert(box.join('|')); // Hea...

zjl-wgf 186

2015-11-02-js

1.对象   创建方式有两种,一时通过new 后加object构造函数,二是用字面量法,   var box=new object();   var box={     name='bokeyuan';   };   访问对象:box.name/box['name'],方括号的优点是可以通过变量来访问对象,如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使...

weixin_30872733的博客 66

Array基本概念

Array基本概念 Array可以使用new关键字创建 。var a = new Array(1,2,3,4); === var a = Array(1,2,3,4); === var a = [1,2,3,4]; 如果Array接受一个参数,那么这个参数是length的长度;如果Array接受多个参数,那么就不是length,是一个普...

weixin_34318326的博客 223

第5章 引用类型

数组 栈方法(LIFO先进后出last in first out) push() pop() 队列方法(FIFO先进先出first in first out) shift()移除第一项 unshift()添加第一项 重排序方法 reverse() 数组顺序倒置 sort() 默认将值转换成字符串比较大小 升序(最小在前) 可以写个比较函数: function compare(value1,value2){ return value2-value1; } var values=[0,1,5,10,15];

ToLastNight的博客 174

JavaScript中sort方法的使用及原理详解

原生JS中提供了两个用来重排序的方法:reverse()和sort(),reverse()没什么好说的,就是直接使数组反转,例如下面的栗子: var arr = [1, 2, 3, 4, 5, -1, -10, 9, 0]; arr.reverse(); alert(arr); //0, 9, -10, -1, 5, 4, 3, 2, 1运行结果就是数组的逆序,没什么...

theLostLamb的博客 8165

js数组去重排序(升序、降序、随机)方法

JavaScript数组去重的方法总汇,数组排序的2种方法;数组的随机排序;

H_hl2021的博客 4527

js 数组重排序 sort 的用法

js 数组重排序 sort 的用法 // 假如我们拿到一个没有排过序数组 // 我们需要根据数组中某个值来排序该怎么办 // 解决办法如下 let userInfo = [{ name: "张三", age: 28 }, { name: "李四", age: 24 }, { name: "王五...

weixin_32445623的博客 151

数组的重排序方法

一、前言 我们知道当涉及到数据结构和算法时,必然会想到或用到排序。下面我们看一下,JS数组中提供的几种重排序方法。 二、reserve()方法 反转数组元素的顺序,并返回修改后的数组。 var arr = [2,4,2,7,9,3,23,15]; arr.reverse(); console.log(arr); // [15,23,3,9,7,2,4,2] 复制代码 三、sort()方法 按照升...

weixin_34025151的博客 1453

js 数组重排序方法

1.反转数组项顺序 reverse方法 var values = [1,2,3,4,5]; values.reverse(); console.log(values); //5,4,3,2,1 2.数组排序 sort方法 (1)由小到大 function compare(value1,value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return

peter的博客 761
上一篇: 【数据结构与算法】JS 求最大公约数
下一篇: 【JavaScript】本地存储localStorage
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值