Javascript 在单个数组中对两种类型的对象进行排序

Javascript 在单个数组中对两种类型的对象进行排序,javascript,sorting,Javascript,Sorting,我有一个数组,其中会议对象具有属性utc\u start。 我还有一个数组,其中的提醒对象具有属性utc\u datetime 在将它们结合起来之后: combined = []; combined = combined.concat(meetings); combined = combined.concat(reminders); 能把它们分类吗?每一个都使用不同的属性 combined.sort((a, b) => { }); 谢谢。您可以尝试: comb

我有一个数组,其中
会议
对象具有属性
utc\u start
。 我还有一个数组,其中的
提醒
对象具有属性
utc\u datetime

在将它们结合起来之后:

    combined = [];
    combined = combined.concat(meetings);
    combined = combined.concat(reminders);
能把它们分类吗?每一个都使用不同的属性

combined.sort((a, b) => {

});
谢谢。

您可以尝试:

combined.sort((a, b) => {
  const utcA = a.utc_start || a.utc_datetime;
  const utcB = b.utc_start || b.utc_datetime;

  // compare utcA with utcB
});
您可以尝试以下方法:

combined.sort((a, b) => {
  const utcA = a.utc_start || a.utc_datetime;
  const utcB = b.utc_start || b.utc_datetime;

  // compare utcA with utcB
});

…假设
0
不是
utc\u start
的有效值(这似乎是一个有效的假设,除非这些是一天中的某个时间,并且从它们的名称来看,我怀疑它们是从纪元开始的日期或时间)。@t.J.Crowder OPs的问题是如何获得正确的信息以进行进一步比较。我甚至不想假设这些值是什么
a.utc_start | a.utc_datetime
假设会议对象上的
utc_start
将不会
0
。但是,对我来说,这似乎是一个安全的假设。谢谢你,但是这并没有达到预期的排序结果。请看以下内容:(更新的URL)
“2018-06-13T21:48:00.000Z
应该在
“2018-06-13T22:49:00.000Z”之前出现。
正确吗?@hsz实际上请检查这一点:它需要在
上进行两次迭代。sort
以输出所需的排序…假设
0
不是
utc\u start
的有效值(这似乎是一个有效的假设,除非这些是一天中的某个时间,而且从它们的名字来看,我怀疑它们要么是日期,要么是从纪元开始的时间)。@T.J.Crowder OPs的问题是为了进一步比较而获得正确的信息。我甚至不尝试假设这些值是什么
a.utc_start | a.utc_datetime
假设会议对象上的
utc_start
将不会
0
。但是,对我来说,这似乎是一个安全的假设。感谢您的帮助,但它并没有达到所需的排序结果。请查看以下内容:(更新的URL)
”2018-06-13T21:48:00.000Z
应该在
“2018-06-13T22:49:00.000Z”之前,对吗?@hsz实际上请检查一下:它需要在
上进行两次迭代。排序
以输出所需的排序。只需FWIW,而不是
concat
,您可以在现代环境中使用
组合=[…会议,…提醒]
(ES2015+):只需FWIW,而不是
concat
,您可以在现代环境中使用
组合=[…会议,…提醒]
(ES2015+):