【问题标题】:Redis data manipulationRedis 数据操作
【发布时间】:2018-01-27 12:20:01
【问题描述】:

我有一个简单的脚本,可以遍历数据库中的列表。我想对这个列表进行排序。如何按“年份”值对其进行排序?

<tbody>
  {{ for(var car in it.carList) { }}
  <tr>
    <td>{{=it.carList[car].make.name}}</td>
    <td>{{=it.carList[car].make.color}}</td>
    <td>{{=it.carList[car].make.year}}</td>
  </tr>
  {{ } }}   
</tbody>

【问题讨论】:

  • 或许有sort()函数?
  • @tadman 请告诉我更多信息。甚至不确定这是什么语言。 (jquey?)
  • Google:“MDN 排序”,你会得到sort()
  • 如果可以访问获取列表的数据库查询,可以ORDER BY year

标签: javascript jquery redis


【解决方案1】:

您可以使用 cmets 中提到的Array.prototype.sort 函数,以及自定义的compareFunction

替换

{{ for(var car in it.carList) { }}

{{ for(var car in it.carList.sort((a, b) => {
    a.make.year - b.make.year;
}) { }}

如果第一个较小,则减去两个数字将导致负值,如果第二个较小,则将导致正值,这就是 .sort() 正在寻找的。​​p>

注意,这会在原地修改列表,以后使用时会进行排序。

【讨论】:

  • 复杂性如何。
  • @akinjide 这是 JavaScript 中默认的 Array.sort 函数。我不知道复杂性是什么,但是如果可以,通常应该使用内置函数...
  • 我同意 Array.prototype.sort 优化和实战测试,但是在处理 n^2 记录时,视图上的排序不会扩展。
  • @akinjide 是的,你说得对,对 SQL 进行排序会更好——我按原样回答问题。这是Array.sort的规范:tc39.github.io/ecma262/#sec-array.prototype.sort
  • 我提供了一个选项。大多数情况下,为问题提供替代答案是好的。
猜你喜欢
  • 2022-10-05
  • 2011-06-10
  • 2022-01-12
  • 2021-05-04
  • 2016-01-19
  • 2013-06-10
  • 2021-05-06
  • 1970-01-01
  • 2012-06-26
相关资源
最近更新 更多