Js如何实现升序和降序

article/2025/10/3 5:46:06

前言

在网页中,实现列表的升序和降序,是一个比较常见的操作,尤其是在做一些数据栓选表格的时候,按照索引,时间等特定的参数,提供升序和降序排列的功能的

具体示例

9dd9d89294be252b1c21f6788c990430.gif
sort

原生js

在原生js中主要是操作DOM,遍历节点,通过removeChild()删除节点,而使用appendChild()添加元素去实现的

代码如下所示

// 排序
function sort() {// 获取父级元素DOMvar ul = document.getElementsByTagName('ul')[0];// 判断是否包含子元素if(ul.hasChildNodes()) {var len = ul.childNodes.length; // 子元素的个数var arr = [];   // 新数组变量用于存储节点for(var i = 0; i<len;i++) {arr[i] = ul.childNodes[0]; // 把节点存入数组ul.removeChild(ul.childNodes[0]); // 从第一个元素开始删除}// 倒过来遍历所有的节点,降序for(var i = len-1;i>=0;i--) {ul.appendChild(arr[i]);   // 添加到ul为子元素}}
}

如下是html结构

<ul><li>小红-1</li><li>张三-3</li><li>李四-4</li><li>王五-5</li>
</ul>
<input type="button" onclick="sort()" value="降序或升序" />

分析

上面的示例是先把容器html内容清空,最后,把数组的数据以倒排序的方式遍历并填充到之前的ul容器里面

使用原生js方式就是要遍历DOM节点,然后依赖DOM对象的属性或方法操作DOM

Vue版本实现

Vue里面是操作数据,结合数组的sort方法一个简单的方法就可以实现的,原生js想要实现同样类似的效果,那就得不断的去查找DOM节点,操作节点实现的

<template><div class="wrap"><div><ul><li v-for="(item,index) in lists" :key="index">{{item.name}}-{{item.lan}}-{{item.chengji}}</li></ul></div><div class="btn"><el-button type="primary" @click="handleJiangxu">降序</el-button><el-button type="primary" @click="handleShengxu">升序</el-button></div></div>
</template><script>export default {name: 'ascendDes',data() {return {lists: [{name: '小王',lan: '语文',chengji: 90},{name: '小红',lan: '语文',chengji: '79'},{name: '小李',lan: '语文',chengji: '71'},{name: '小白',lan: '语文',chengji: '85'}]}},methods: {// 降序handleJiangxu() {this.lists = this.lists.sort((a, b) => a.chengji - b.chengji).reverse()    // 反转一下},// 升序handleShengxu() {this.lists = this.lists.sort((a,b)=>a.chengji-b.chengji);}}}
</script><style lang="scss" scoped>
.wrap {text-align: center;
}
.btn {margin-top: 20px;
}
</style>

使用vue实现,发现就很简单,使用sort(a,b)方法,其中a代表前一个数,b代表后一个数,做一个差值,就可以判断哪个大,哪个小的

总结

升序和降序在Js中是一个比较常见的操作,做一些简单的排序操作可以基于sort方法实现

JS如何为表单聚焦控件设置醒目的样式

2023-01-31

5520689899f14e93ed1de027bc539e5c.jpeg

Js如何实现当网页超过一屏时导航菜单始终置顶-吸顶盒效果

2023-01-30

98d98688a6b0c155d20de05a298fc357.jpeg

VueJs中如何使用Teleport组件

2023-01-22

513855f67464a0e31d1e594c90fe985e.jpeg

VueJs中如何使用provide与inject

2023-01-21

9e04cbfe2962ade417026744c559a381.jpeg


dbfeb72e63cfc8259729fb747ef36aaf.jpeg

点击左下角查看更多

a8a1243dbc3164ff1ea7f2db9c721b84.gif


http://chatgpt.dhexx.cn/article/n1sS94BW.shtml

相关文章

堆排序(升序降序)

堆排序是利用堆这种数据结构而设计的一种排序算法&#xff0c;堆排序是一种选择排序&#xff0c;它的最坏、最好、平均时间复杂度均为O(nlogn)&#xff0c;是不稳定排序。 小根堆&#xff08;最小堆&#xff09;&#xff1a;每个结点的值都<其左右孩子结点的值。 大根堆&…

python列表中的升序与降序

在使用python进行编程的时候&#xff0c;我们经常使用到列表&#xff0c;并需要对列表里的元素进行升降序操作&#xff0c;下面以一个简单的例子来展示python列表中的升序与降序操作。**例如&#xff1a;**输入三整数x,y,z,现在需要把这三数进行升序和降序操作 **tips:**使用 .…

Python 排序列表——如何按降序或升序排序

在 Python 中&#xff0c;你可以使用 sorted() 方法或 sort() 方法对数据进行排序。 在本文中&#xff0c;我将提供 sorted() 和 sort() 方法的代码示例&#xff0c;并解释两者之间的区别。 Python 排序列表——如何按降序或升序排序 在 Python 中&#xff0c;你可以使用 so…

C语言——选择排序(升序、降序)

举例出第一趟&#xff1a; 从a[0]开始找 遍历找最小值 第一趟排序后&#xff1a; B站“AF程序猿”视频中截到的 第二趟从a[1]开始…… &#xff08;随机生成我这里就指定10以内的了哈&#xff0c;方便看运行结果&#xff09; 程序&#xff08;升序&#xff09;&#xff1a; #…

java数组排序,升序和降序

文章目录 前言基本数据类型排序升序降序排列 基本数据类型包装类升序降序 对象排序升序降序 前言 对于数组的排序一直很疑惑&#xff0c;尤其是如何对数组进行降序排列&#xff0c;例如要对int[]类型的数组降序排列&#xff0c;这里来进行说明 基本数据类型排序 升序 int[]…

Java中的升序和降序

1.使用Arrays中的升序API&#xff08;sort&#xff09;进行升序 代码示例如下&#xff1a; public class px {public static void main(String[] args) {int[] a{11,55,99,66,22,88,33};System.out.println(Arrays.toString(a));//打印原有数组Arrays.sort(a);System.out.pri…

MySQL数据库升降序排序

在使用数据库时&#xff0c;我们可能要将数据按照从小到大&#xff0c;或者从大到小的顺序排序。这样我们就用到了升降序排序。 升序&#xff1a;从小到大&#xff08;asc&#xff09; 以这个表数据为例&#xff1a;从小到大排序 语法&#xff1a; select * from stu order …

Linux中查看bz2压缩文件大小,Linux bz2文件解压与压缩之bzip2命令

1. Linux系统上bz2的简介 在Linux运维中,我们经常看到.bz2后缀的文件,这是一种压缩文件,一般存在于Linux系统当中。本文介绍一下如何使用bzip2工具来压缩和解压bz2文件。 2. 安装bzip2 以CentOS系统为例,最小化安装的情况下,并没有集成bzip2。 [root@zcwyou ~]# bzip2 -ba…

linux 文件夹tar.bz2压缩命令,使用tar命令提取(或解压缩)tar.bz2和tbz2文件的方法...

本文介绍使用tar命令提取(或解压缩)tar.bz2和tbz2文件的方法。tar命令允许你创建和提取tar归档文件,它支持各种压缩程序,例如gzip、bzip2、lzip、lzma、lzop、xz和compress。Bzip2是用于压缩tar文件的最受欢迎的算法之一,按照约定,用bzip2压缩的tar归档文件的名称以.tar.bz…

window系统怎么解压tar.bz2文件

下载7zip工具选择要解压的文件&#xff0c;右键选择7zip > 打开压缩包 点击提取菜单&#xff0c;选择解压之后文件存放的路经 解压出来后是一个.tar格式的文件&#xff0c;此时再次解压即可 耐心等待解压完成 解压完成 欢迎小伙伴讨论&#xff0c;文章内容如有错误请在评论区…

Linux常用命令详解

Linux命令 命令提示符 打开终端时&#xff0c;我们输入信息的左边就是命令提示符&#xff0c;例如&#xff1a; Linux命令提示符结构&#xff1a; 普通用户boy&#xff1a;boyboy-virtual-machine:/$ 根用户root&#xff1a;rootboy-virtual-machine:/# 前面的是当前用户名b…

PHP验证码SESSION验证码图片不同步

PHP验证码SESSION验证码图片不同步 今天在做php登录验证的时候带验证码的&#xff0c;nc的在页面输出了下验证码的session&#xff0c;于是乎出现了戏剧性的一幕&#xff0c;session验证码和图片上的验证码不一样&#xff1f;那用户岂不是登陆不上了&#xff1f;但是奇怪的是用…

php 验证码 生成,PHP实现随机生成验证码功能

验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。当然,也可以封装成一个函数,以后使用的时候也是很方便的,但是现在未封装。…

php验证是否图片,php验证码图片不显示图片怎么办

php验证码图片不显示图片的解决办法&#xff1a;首先检查php是否安装gd扩展&#xff1b;然后在php目录下找到php.ini文件&#xff1b;最后将文件编码方式改为utf-8无DOM格式&#xff0c;并在header前清除缓存即可。 PHP图片验证码无法显示的解决方案 问题&#xff1a;使用php实…

php验证码刷新_php实现点击可刷新验证码

这篇文章主要介绍了php如何实现点击即可刷新验证码&#xff0c;代码很详细&#xff0c;值得大家学习&#xff0c;感兴趣的小伙伴们可以参考一下 验证码类文件 CreateImg.class.php width$width; $this->height$height; $this->codenum$codenum; } function outImg() { //…

php验证码显示乱码,如何解决php验证码乱码问题

php验证码乱码的解决办法&#xff1a;1、修改访问验证码生成方法函数的路径&#xff1b;2、修改文件编码&#xff0c;并去掉BOM头&#xff1b;3、检查验证码生成方法&#xff1b;4、修改服务环境。 具体问题&#xff1a; php验证码输出全是乱码...<?php session_start(); …

php实现登录验证码_php如何实现登录验证码

php实现登录验证码的方法:首先产生4到6位数的随机验证码;然后把产生的每个字符保存到session或数据库;接着将验证码发送到用户的手机;最后将和输入的验证码进行对比验证即可。 PHP实现简单的验证码功能机制 网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以…

php验证码类(分享)

//验证码类 class ValidateCode {private $charset abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789;//随机因子private $code;//验证码private $codelen 4;//验证码长度private $width 130;//宽度private $height 50;//高度private $img;//图形资源句柄private $font…

php验证码图片不显示怎么办,php 验证码图片无法显示怎么办

php验证码图片无法显示的解决办法&#xff1a;首先打开相应的PHP文件&#xff1b;然后在header输出之前添加代码为“ob_clean();”&#xff1b;最后保存修改即可。 本文操作环境&#xff1a;Windows7系统、PHP7.1版&#xff0c;DELL G3电脑 PHP验证码图片无法显示问题 我以为是…

PHP验证码不能显示的问题

最近学校学习任务需要用到验证码&#xff0c;敲完代码后运行时发现验证码并没有生效&#xff0c;上官网查看才发现原来是自己的GD库没有配置&#xff0c;需要我们对php.ini文件进行配置 1、载入GD库 在php.ini文件中写入extensionphp_gd.dll 2、在php.ini文件中开启gd.jpeg_i…