前言

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

具体示例

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

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

2023-01-30

VueJs中如何使用Teleport组件

2023-01-22

VueJs中如何使用provide与inject

2023-01-21

点击左下角查看更多

Js如何实现升序和降序相关推荐

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

    js原生去重排序 var hhl = [1, 5, 6, 3, 2, 7, 6, 1, 5, 4, 8, 6, 9]var newArr = [];//创建一个新数组var isRepeat = fa ...

  2. java list逆序_Java的数组和list升序,降序,逆序函数Collections.sort和Arrays.sort的使用...

    list升序,降序,逆序 Listlist =new ArrayList(); //如果list是 5 7 2 6 8 1 4 1.升序: Collections.sort(list) //list: ...

  3. php表格单元格怎么实现排序,angularjs,_angular表格点击序号进行升序,降序排序,怎么实现。,angularjs - phpStudy...

    angular表格点击序号进行升序,降序排序,怎么实现. 序号内容姓名地点时间序号 {{$index + 1}}{{$index + 1}}{{$index + 1}}{{$index + 1}}{{ ...

  4. WinForm绘制带有升序、降序的柱形图

    WinForm绘制带有升序.降序的柱形图 private void HuiZhiTu( string strPaiXu){//初始数据int[] nums = { 150, 89, 200, 60, ...

  5. 输入整型数组和排序标识,对其元素按照升序或降序进行排序(华为OJ系列)

    输入整型数组和排序标识,对其元素按照升序或降序进行排序接口说明原型:void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag);输入参数 ...

  6. java comparator 降序排序_【转】java comparator 升序、降序、倒序从源码角度理解

    原文链接:https://blog.csdn.net/u013066244/article/details/78997869 环境 jdk:1.7+ 前言 之前我写过关于comparator的理解,但 ...

  7. c#sort升序还是降序_被玩坏的数组排序之sort函数

    JavaScript 的数组排序是一个非常常见业务场景 ECMAScript 为数组提供了一个原生的sort函数,今天我们就来好好看看你对sort函数究竟了解多少. 首先我们来看一下sort函数的基本 ...

  8. mysql同时满足升序和降序_MySQL性能优化(三):索引

    点击上方蓝色"码农架构",选择"设为星标" 专注于高可用.高性能.高并发类技术分享! 索引原理 如果一本新华字典假如没有目录,想要查找某个字,就不得不从第一页开 ...

  9. android升序降序按钮,创建一个按钮,将排序MYSQL查询升序和降序

    我是一名学生编码器. 我想创建一个排序按钮,当按下时,按升序排序MYSQL查询.然后再次按下时,它将按降序排列.对,现在,它只是显示升序和降序表背靠背.创建一个按钮,将排序MYSQL查询升序和降序 形 ...

最新文章

  1. Pycharm中一些不为人知的技巧pycharm技巧
  2. 如何通过代码注册或取消事件?
  3. eclipse配置虚拟路径后,每次启动tomcat都会虚拟路径失效的问题解决
  4. video标签poster属性在安卓微信中不生效问题解决
  5. 【转载】用 Pyinstaller 来打包 + 解决打包结果过大问题
  6. 开启数据科学职业生涯的8个基本技巧
  7. vc mysql 查询_VC++数据库模糊查询及精确查询示例代码分享
  8. SpringCloud Ribbon的分析
  9. 【Python玩转自动化运维】Python-基础1
  10. Linux中光驱对应的设备文件,Linux硬盘对应的设备文件
  11. WEB前端之网页设计①----最新最全详解/网页基础结构
  12. 深富策略:险资密集调研 周期股板块能否崛起?
  13. 中职学计算机专业考本科难吗,国际本科难不难(中职考本科难不难)
  14. tlwr842n服务器无响应,TL-WR842n无线路由器掉线解决方法汇总
  15. T1118,T1677,T1122
  16. Joining_thread简单实现
  17. CTF题之BUUCTF系列:BUUCTF Misc 二维码
  18. Centos使用yum报错---网络问题
  19. 未来两周目标计划---C++ and Disassembly(不积跬步无以至千里,不积小流无以成江海)...
  20. 编程九十天之特别纪念篇

热门文章

  1. IDEA 主题,四款牛x炫酷的主题,非常哇塞!
  2. Windows 位图
  3. python获取redis数据_Python之操作redis数据库
  4. Oracle 19C+13.5 EMCC部署和配置
  5. 关于数组的对象获取及排序问题/小程序的多层页面返回问题
  6. POX安装和部分配置
  7. ansys里面自带chemkin_ANSYS.CHEMKIN.PRO.V17.0.R15151
  8. DEM生产坡度图、坡向图、山体阴影图、地形图、等高线图原理以及MATLAB实现
  9. 【若泽大数据实战第十九天】Hive 函数UDF开发以及永久注册udf函数
  10. js 判断是什么浏览器