我正在尝试链接一些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()

最佳答案

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

documentation on sortBy


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

关于javascript - 如何使lodash sortBy如果值相等则不排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45153226/

10-11 11:34