前端实现list排序

摘要:
对于列表中的字段,我需要实现列表的升序和降序效果图代码。我使用angular1.X中的代码根据列表中的排序字段对项目进行排序。

需求

  • 针对list中某个字段,实现list的升序和降序

效果图

前端实现list排序第1张

代码

我是用在angular1.X中项目的,根据list中的sort字段进行排序。

# sort.html
<style>
.list-sort .upper-sort {
   0;
  height: 0;
  margin-bottom: 10px;
  border-top: 15px solid transparent;
  border-right: 15px solid transparent;
  border-bottom: 15px solid #ccc;
  border-left: 15px solid transparent;
}

.list-sort .down-sort {
   0;
  height: 0;
  border-top: 15px solid #ccc;
  border-right: 15px solid transparent;
  border-bottom: 15px solid transparent;
  border-left: 15px solid transparent;
}
</style>

...

<div class="list-sort">
  <div   data-action="upper" ng-click="upSort()"></div>
  <div   data-action="down" ng-click="downSort()"></div>
</div>

#sortCtrl.js
function bubble_sort(list) {
  count = list.length;
  for (let i = 0;i < count - 1;i++) {
      let swapped = false;
      for (let j = 0;j < count - 1;j++) {
          if (list[j].score > list[j + 1].score) {
              let temp = list[j];
              list[j] = list[j + 1];
              list[j + 1] = temp;
              swapped = true;
          }
      }
      if (!swapped) {
          break;
      }
  }
  return list;
}

function bubble_sort_revert(list) {
  count = list.length;
  for (let i = 0;i < count - 1;i++) {
      let swapped = false;
      for (let j = 0;j < count - 1;j++) {
          if (list[j].score < list[j + 1].score) {
              let temp = list[j];
              list[j] = list[j + 1];
              list[j + 1] = temp;
              swapped = true;
          }
      }
      if (!swapped) {
          break;
      }
  }
  return list;
}

$scope.upSort = function () {
  bubble_sort($scope.candidateList)
  let upper = document.querySelector("[data-action=upper]");
  let down = document.querySelector("[data-action=down]");
  upper.style.borderBottomColor = "#2196f3";
  down.style.borderTopColor = "#ccc";
};

$scope.downSort = function () {
  bubble_sort_revert($scope.candidateList)
  let upper = document.querySelector("[data-action=upper]");
  let down = document.querySelector("[data-action=down]");
  upper.style.borderBottomColor = "#ccc";
  down.style.borderTopColor = "#2196f3";
};

免责声明:文章转载自《前端实现list排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇博客园中随笔,文章的区别电路板设计误区下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C++ list容器系列功能函数详解

C++ list函数详解   首先说下eclipse工具下怎样debug:方法:你先要设置好断点,然后以Debug方式启动你的应用程序,不要用run的方式,当程序运行到你的断点位置时就会停住,也会提示你进入到Debug视图方式操作,                 F5是进入到函数或语句块的内部                 F6是单步运行,一行一行的走...

bignumber.js

npm install bignumber.js 在vue文件中引用 import BigNumber from "bignumber.js"; 加法和减法 for (let i = 0; i < list.length; i++) { // subWeight += Number(list[i].itemWeight);...

vue自学小demo----前端

vue学习的小demo,实现简单的页面项目的增删 代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue</title> <script src="./vue.js">...

Linux下查看Nginx的并发连接数和连接状态-乾颐堂

Linux下查看Nginx等的并发连接数和连接状态。 1、查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态:  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 或者: netstat -n | awk '/^tcp/ {++state[$NF...

JDBC实现从数据库中读取信息以表格的形式展示

方法都是通用的,要看你如何去灵活的运用!!! 本文以“新闻发布系统”为例 第一步:建立数据库(使用的是mysql数据库) 其中数据库信息为: 数据库名:news 表名:title,字段名分别为(序号、标题名称、创建者、创建时间) create table title( id int(2) primary key, name varchar(20), cre...

基于bootstrap的局部刷新的分页

在之前的工作中我用的分页有很多,一直不牢固,所以自己用起来也不是很顺手,这是一个局部刷新的分页,我试了很多,本想用mvcPager来做局部刷新,但是考虑到成本太高,放弃了,先来总结一下基于bootstrap的分页吧,便于自己以后使用 开源地址 https://github.com/lyonlai/bootstrap-paginator 首先引用 Jquer...