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]