美文网首页
微信小程序:对象数组排序(Array sort() 比较函数)

微信小程序:对象数组排序(Array sort() 比较函数)

作者: 我的小小笔尖 | 来源:发表于2021-10-30 15:10 被阅读0次

目标:
按照数组中对象的三个属性('isSorted', 'beforeIndex', 'afterIndex')进行排序
isSorted==true 排在前面,isSorted==false 排在后面
isSorted==true 时,再按照 afterIndex 值由小到大排序
isSorted==false 时,再按照 beforeIndex 值由小到大排序

    // 数组重新排序
    var compare = function (_isSorted, _beforeIndex, _afterIndex) {
      return function (obj2, obj1) {
        console.log(obj1, obj2)
        var val1 = obj1[_isSorted]
        var val2 = obj2[_isSorted]
        if(val1 && val2) {
          // 两者都已排序
          var val3 = obj1[_afterIndex]
          var val4 = obj2[_afterIndex]
          if(val3 <= val4) {
            return 1
          }else {
            return -1
          }
        }else if(!val1 && !val2) {
          // 两者都未排序
          var val5 = obj1[_beforeIndex]
          var val6 = obj2[_beforeIndex]
          if(val5 <= val6) {
            return 1
          }else {
            return -1
          }
        }else {
          if(val1) {
            return 1
          }else {
            return -1
          }
        }
      }
    }
    recallList.sort(compare('isSorted', 'beforeIndex', 'afterIndex'))

适用场景:
有一个乱序的对象数组,需要对该数组进行一次排序。上面的代码适用。

相关文章

网友评论

      本文标题:微信小程序:对象数组排序(Array sort() 比较函数)

      本文链接:https://www.haomeiwen.com/subject/rjsgaltx.html