收藏
回答

小程序在拿到搜索结果之后应该怎么排序呢?

最近在学开发小程序,在做搜索页面,其他功能已基本解决,碰到一个问题想请教一下:

在拿到搜索结果并渲染到页面以后,想要按照不同条件对搜索结果进行排序,应该怎么做呢?

最开始的时候想到的是 orderby 方法,但考虑到我们要排序的对象是搜索结果,不是数据库的集合,所以这个应该不行吧?

第二个想到的是用 sort 方法。但是我搜索的结果都是比较复杂的大对象,有属性、有数组……(例如有_id,有标题、有时间,有图片链接、视频地址、有标签数组、点击量、布尔值等等...)如果要用 sort 方法对播放量进行排序应该怎么做呢?

对了,顺便问问,orderby 是临时对数据库的集合进行排序呢,还是永久性的?

回答关注问题邀请回答
收藏

3 个回答

  • 陈宇明
    陈宇明
    2023-01-15

    小程序端对拿到的数据进行排序

    var arr3 = [30,10,111,35,1899,50,45];
    		arr3.sort(function(a,b){
    			return a - b;
    		})
    		console.log(arr3);//输出  [10, 30, 35, 45, 50, 111, 1899]
    
    2023-01-15
    有用
    回复
  • Jianbo
    Jianbo
    2023-01-15

    在小程序的后端api里,根据前端传递的排序参数在后端服务api里进行排序。

    2023-01-15
    有用
    回复 2
    • crazybeans
      crazybeans
      2023-01-15
      那在小程序端对拿到的数据进行排序应该怎么办呢?
      2023-01-15
      回复
    • Jianbo
      Jianbo
      2023-01-15回复crazybeans
      小程序端没什么好办法了,就只能数组排序了,不过这个不精确,很难和排序参数对应。
      2023-01-15
      回复
  • 任性༄🍎
    任性༄🍎
    2023-01-15

    排序是在服务端进行的,前端排序只能排获取到的数据,如果有分页,只能走后端

    2023-01-15
    有用
    回复 2
    • crazybeans
      crazybeans
      2023-01-15
      那在小程序端对拿到的数据进行排序应该怎么办呢?
      2023-01-15
      回复
    • 任性༄🍎
      任性༄🍎
      2023-01-15回复crazybeans
      简单的排序可以使用 Array.sort,复杂的建议后台做排序吧,非小程序(虽然小程序能构建npm,但这个包有点大,不建议使用),可以使用 lodash.sortBy 或者 lodash.orderBy 进行排序,具体方法 自行查官方文档或者度娘
      2023-01-15
      回复
登录 后发表内容