Javascript 如何检查&;分类json数组中的键是否具有相同的值?

Javascript 如何检查&;分类json数组中的键是否具有相同的值?,javascript,react-native,sorting,Javascript,React Native,Sorting,我想把同一时间的会议分成不同的小组。怎么做 我已经能够识别同一时间的会议,并将它们推到临时阵列中 但他们都是临时来的 以下是答复 [ { "id": "1081", "endDate": "2020-03-24T12:30:00.000Z", "startDate": "2020-03-24T12:00:00.000Z", "title": "Meeting 1" }, { "id": "1073", "endDate": "2020-

我想把同一时间的会议分成不同的小组。怎么做

我已经能够识别同一时间的会议,并将它们推到临时阵列中

但他们都是临时来的

以下是答复

[
  {
    "id": "1081",
    "endDate": "2020-03-24T12:30:00.000Z",
    "startDate": "2020-03-24T12:00:00.000Z",
    "title": "Meeting 1"
  },
  {
    "id": "1073",
    "endDate": "2020-03-24T13:00:00.000Z",
    "startDate": "2020-03-24T12:30:00.000Z",
    "title": "Meeting 2"
  },
  {
    "id": "1082"
    "endDate": "2020-03-24T12:30:00.000Z",
    "startDate": "2020-03-24T12:00:00.000Z",
    "title": "Event 2",
  },
  {
    "id": "1083"
    "endDate": "2020-03-24T13:00:00.000Z",
    "startDate": "2020-03-24T12:30:00.000Z",
    "description": "",
    "title": "event 1",
  },
  {

    "id": "1050",
    "endDate": "2020-03-25T13:00:00.000Z",
    "startDate": "2020-03-25T12:30:00.000Z",
    "title": "event 2",
  }
]
我使用了下面的代码片段来获得同一时间的会议

events.sort(function(a, b) {
              return a.startDate < b.startDate
                ? -1
                : a.startDate > b.startDate
                ? 1
                : 0;
            });
            for (let i = 0; i < events.length; i++) {
              const startDate = events[i].startDate;
              for (let j = i + 1; j < events.length; j++) {
                const startDateNext = events[j].startDate;

                if (startDate === startDateNext) {
                  console.log("ONCE: ", events[j]);
                  flag++;
                  console.log('Array Element %d and %d are equal', i, j);

                }
              }
            }
            console.log('\nThe Equal Numbers In The Array Are = %d', flag);
            console.log('All Events: ', JSON.stringify(events));
            console.log('Events same time: ', eventsWithSameTime);
events.sort(函数(a,b){
返回a.startDateb.开始日期
1.
: 0;
});
for(设i=0;i
输出:

数组元素0和2相等

数组元素1和3相等

数组元素1和4相等

数组元素3和4相等

我想分组会议,如:[0,2]&[1,3,4]


如果您知道不同的日期,我们将不胜感激。

您可以编写这样的函数 用过滤法

let arrayEvent1 = meetings.filter((el) => {
  return el.startDate === "2020-03-24T12:00:00.000Z"
});

let arrayEvent2 = meetings.filter((el) => {
  return el.startDate === "2020-03-24T12:30:00.000Z"
});
如果您不知道,您可以使用

这将创建一个包含所有不同会话集的数组对象

var grouped = meetings.reduce( function (obj, meeting) {
  var startDate = meeting.startDate
  obj[startDate] = obj[startDate] || []
  obj[startDate].push(meeting)
  return obj
}, {})

您可以使用reduce并按开始日期对它们进行分组。这将为您提供分组在一起的会议

var会议=[
{
“id”:“1081”,
“结束日期”:“2020-03-24T12:30:00.000Z”,
“起始日期”:“2020-03-24T12:00:00.000Z”,
“标题”:“会议1”
},
{
“id”:“1073”,
“结束日期”:“2020-03-24T13:00:00.000Z”,
“起始日期”:“2020-03-24T12:30:00.000Z”,
“标题”:“会议2”
},
{
“id”:“1082”,
“结束日期”:“2020-03-24T12:30:00.000Z”,
“起始日期”:“2020-03-24T12:00:00.000Z”,
“标题”:“事件2”,
},
{
“id”:“1083”,
“结束日期”:“2020-03-24T13:00:00.000Z”,
“起始日期”:“2020-03-24T12:30:00.000Z”,
“说明”:“,
“标题”:“事件1”,
},
{
“id”:“1050”,
“结束日期”:“2020-03-25T13:00:00.000Z”,
“起始日期”:“2020-03-25T12:30:00.000Z”,
“标题”:“事件2”,
}
]
var分组=会议。减少(功能(obj,会议){
var startDate=会议开始日期
obj[startDate]=obj[startDate]| |[]
obj[startDate]。推送(会议)
返回obj
}, {})

console.log(分组)
请发布您的尝试记录,并明确说明您被困的位置。人们会很乐意提供帮助。我想让一组会议具有相同的开始日期。您需要组或一个排序数组?我需要两个数组:arr1=[0,2]&arr2=[1,3,4]3不等于4 2020-03-24!==2020-03-25我道歉。在这种情况下,arr1=[0,2]&arr2=[1,3]