资讯专栏INFORMATION COLUMN

js中sort的使用(一)

legendmohe / 2827人阅读

摘要:最近写游戏,需要做一个列表的道具领取功能,当你的等级到达一定的程度,就能领取道具,当道具领取后,需要把已领取的项,放到最后面。

最近写游戏,需要做一个列表的道具领取功能,当你的等级到达一定的程度,就能领取道具,当道具领取后,需要把已领取的项,放到最后面。
类似于:(value =1说明已领取)

    let arr = [
        {id:"1",name:"a",value:1},
        {id:"2",name:"b",value:1},
        {id:"3",name:"c",value:0},
        {id:"4",name:"d",value:0},
        {id:"5",name:"e",value:1},
        {id:"5",name:"f",value:1},
        {id:"7",name:"g",value:1},
        {id:"8",name:"h",value:0},
        {id:"9",name:"i",value:0},
        {id:"10",name:"j",value:0}
    ];        

我们需要的结果为: 3,4,8,9,10,1,2,5,6,7 。这是我们需要的排序后结果。
但是,一开始我想的不是sort方法排序,我的想法是,只要把value = 1的项放到数组的最后面,不就好了吗?
所以,我就写了下面代码:

let num:number = 0;
for(let i = 0,l = arr.length; i < l;i++){
    if(arr[i].value == 1){
      let str = arr.splice(i,1);
      arr.unshift(str[0]);
      arr.push(str[0]);
      num ++;
          }
}
arr.splice(0,num);

但是我觉得这样写可能不大好,建议大家也不要这样写。所以就寻求另一种解决方式,就用到了sort排序。
首先我们先看看简单点的排序:

let arr1 = [15,10,2,1,9,23,50,80,4,8,32]
arr1.sort((a,b)=>{
    if(a>b) {
        return 1
    }
    else if(a

这样能使用我们的arr1进行一个升序的排序,
如果 a 大于 b,排序后 a 在 b 后面,此时 return 1;
如果 a 小于 b,排序后 a 在 b 前面,此时 return -1。
所以我们的arr排序可以这样写:

arr.sort((a,b)=>{
      if(a.value == 1 && b.value != 1) {
          return 1
      }
      else if(a.value != 1 && b.value == 1) {
          return -1
      }
      return 0
})

此外还有一种情况,下章再说。
js中sort的使用(二)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103525.html

相关文章

  • 【重温基础】JS常用高阶函数介绍

    摘要:也可以直接调用内置方法常用高阶函数方法的作用是接收一个函数作为参数,对数组中每个元素按顺序调用一次传入的函数并返回结果,不改变原数组,返回一个新数组。 Ps. 晚上加班到快十点,回来赶紧整理整理这篇文章,今天老大给我推荐了一篇文章,我从写技术博客中收获到了什么?- J_Knight_,感受也是很多,自己也需要慢慢养成记录博客的习惯,即使起步艰难,难以坚持,但还是要让自己加油加油。 前...

    gitmilk 评论0 收藏0
  • 【重温基础】21.高阶函数

    摘要:欢迎您的支持系列目录复习资料资料整理个人整理重温基础篇重温基础对象介绍重温基础对象介绍重温基础介绍重温基础相等性判断重温基础闭包重温基础事件本章节复习的是中的高阶函数,可以提高我们的开发效率。 本文是 重温基础 系列文章的第二十一篇。 今日感受:想家。 本人自己整理的【Cute-JavaScript】资料,包含:【ES6/ES7/ES8/ES9】,【JavaScript基础...

    wua_wua2012 评论0 收藏0
  • IFE JS练习(二|三) 数组sort,forEach,slice和filter方法

    摘要:返回表示保留该元素通过测试,则不保留。否则,的值在非严格模式下将是全局对象,严格模式下为。索引数组中正在处理的当前元素的索引。当执行回调函数时用作的值参考对象。是数组组所以要带,用转换为数值类型。 代码块: var aqiData = [ [北京, 90], [上海, 50], [福州, 10], [广州, 50], [成都, 90], ...

    Aomine 评论0 收藏0
  • 案例学习总结:原生JS实现表格排序

    摘要:最近在学习的表格排序,没想到看不起眼的表格排序实际上却暗含了众多知识点。二实现表格排序使用获取数据之所以使用动态获取数据,是为了使用文档碎片绑定数据。 最近在学习js的表格排序,没想到看不起眼的表格排序实际上却暗含了众多JS知识点。在这里记录一下此次学习过程。希望对大家也有所帮助。 完整的表格排序涉及了下列这些知识点: call方法使用 sort方法深入 数据绑定 DOM映射 下面...

    ShevaKuilin 评论0 收藏0
  • 案例学习总结:原生JS实现表格排序

    摘要:最近在学习的表格排序,没想到看不起眼的表格排序实际上却暗含了众多知识点。二实现表格排序使用获取数据之所以使用动态获取数据,是为了使用文档碎片绑定数据。 最近在学习js的表格排序,没想到看不起眼的表格排序实际上却暗含了众多JS知识点。在这里记录一下此次学习过程。希望对大家也有所帮助。 完整的表格排序涉及了下列这些知识点: call方法使用 sort方法深入 数据绑定 DOM映射 下面...

    lauren_liuling 评论0 收藏0

发表评论

0条评论

legendmohe

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<