如何为以下排序函数添加动态术语/排序?

时间:2016-12-09 02:08:27

标签: javascript sorting

这是一个基本的排序功能:

filteredItems () {
  return this.model
    .sort((a, b) => new Date(b.updatedAt) - new Date(a.updatedAt))
  }
}

我希望能够动态设置排序termorder

sort: {
  term: 'updatedAt',
  order: '-1'
}

如何在上面的代码中反映出来?

修改

我意识到排序功能仅适用于日期。它不会与名称和其他领域一起使用。有没有办法创建一个排序一切的功能?

1 个答案:

答案 0 :(得分:4)

filteredItems (sort) {
  return this.model
    .sort((a, b) => parseInt(sort.order) * (new Date(b[sort.term]) - new Date(a[sort.term])))
  }
}

var sort= {
  term: 'updatedAt',
  order: '-1'
}

Array.prototype.sort(fn)用于对所有内容进行排序,如果你想让更多类型使用比较函数作为参数,比如filteredItems((a, b) => parseInt(sort.order) * (new Date(b[sort.term]) - new Date(a[sort.term])))