如何使lodash sortBy如果值相等则不排序

时间:2017-07-17 20:35:05

标签: javascript sorting lodash

我正在尝试链接一些lodash sortBy函数,但在最后的sortBy我想让它有条件。如果UTC相同,我不想改变数组中的位置

代码:

const events = _(arr).chain().sortBy((e) => {
    return e.event.json.QUERY.type
  }).sortBy((e) => {
    if (e.event.json.QUERY.type === 'ad') {
      return e.event.json.QUERY.metadata.ad.assetid;
    } else {
      return e.event.json.QUERY.metadata.content.assetid;
    }
  }).sortBy((e) => {
    return e.event.json.QUERY.utc;  // this is where I want a conditional but I don't know if that's possible with lodash
  }).value()

1 个答案:

答案 0 :(得分:1)

lodash sortBy方法实现了一个稳定的排序,即它们的排序键值相同时不会交换元素。

来自documentation on sortBy

  

此方法执行稳定排序,即保留相等元素的原始排序顺序。