【发布时间】:2020-06-03 11:28:39
【问题描述】:
我有一个不可变的地图,我正在尝试根据这两个属性进行排序。例如,我拥有的数据格式:
const items = [
{id:1,created:2020:12:12T10:12:56,start:2020:12:10},
{id:1,created:2020:12:12T10:12:58,start:2020:12:09},
{id:1,created:2020:12:12T10:12:57,start:2020:12:08},
{id:1,created:2020:12:12T10:12:53,start:2020:12:09},
]
我想根据“created”和“start”这两个属性对这些项目进行排序。 我可能会这样做:
const sorted = items.sort((a, b) => new Date(b.get('created')) - new Date(a.get('created')));
有什么方法可以与 start 属性一起排序,比如:
const sorted = items.sort((a, b) => new Date(b.get('created')) - new Date(a.get('created')) && new Date(b.get('start')) - new Date(a.get('start')) );
这是正确的还是有人知道实现这一目标的好方法。提前致谢
【问题讨论】:
-
您想先按“created”排序,然后按“start”排序?
-
可能倒过来,先开始,再按创建
-
您需要
||运算符而不是&&。见here -
你能解释一下吗@trincot 为什么我需要使用 ||运算符而不是 &&?
-
如果第一个减法不为零,则另一个变得无关紧要,因此您不需要
&&,因为它还需要检查另一个是否非零。您是否阅读了我链接到的问答中接受的答案?
标签: javascript reactjs sorting immutable.js