Javascript 基于参数更新数组中的值

Javascript 基于参数更新数组中的值,javascript,jquery,arrays,sorting,Javascript,Jquery,Arrays,Sorting,使用JavaScript或Jquery,我得到了以下基于开始日期(坐标)排序的数组: [{ 元素:'', 起始日期:864, 完日期:999, 订单:0 }, { 元素:'', 起始日期:918, 完日期:1053, 订单:1 }, { 元素:'', 起始日期:945, 完日期:1269, 订单:2 }, { 元素:'', 起始日期:972, 完日期:1107, 订单:3 }, { 元素:'', 起始日期:1026, 完日期:1161, 订单:4 }] 如果一个字符串的“startDate”大

使用JavaScript或Jquery,我得到了以下基于开始日期(坐标)排序的数组:

[{
元素:'',
起始日期:864,
完日期:999,
订单:0
},
{
元素:'',
起始日期:918,
完日期:1053,
订单:1
},
{
元素:'',
起始日期:945,
完日期:1269,
订单:2
},
{
元素:'',
起始日期:972,
完日期:1107,
订单:3
},
{
元素:'',
起始日期:1026,
完日期:1161,
订单:4
}]
如果一个字符串的“startDate”大于任何其他字符串的“endDate”,我想将“order”值更新为参数为true的比较字符串

下面是我试图输出的示例,其中字符串4的“顺序”为0(与字符串0相同):

[{
元素:'',
起始日期:864,
完日期:999,
订单:0
},
{
元素:'',
起始日期:918,
完日期:1053,
订单:1
},
{
元素:'',
起始日期:945,
完日期:1269,
订单:2
},
{
元素:'',
起始日期:972,
完日期:1107,
订单:3
},
{
元素:'',
起始日期:1026,
完日期:1161,
订单:0
}]

可能是这样的

var-arr=[
{elem:'',开始日期:864,结束日期:999,顺序:0},
{elem:'',起始日期:918,结束日期:1053,顺序:1},
{elem:'',起始日期:945,结束日期:1269,顺序:2},
{elem:'',起始日期:972,结束日期:1107,顺序:3},
{elem:'',起始日期:1026,结束日期:1161,顺序:4}
];
arr.forEach(功能(启动){
var less=arr.filter(函数(项){return start.startDate>item.endDate})[0];
如果(较少)start.order=less.order;
} );

控制台日志(arr)如果
开始日期
大于多个
结束日期
,该怎么办?它应该使用第一个还是最后一个比较的
订单
?另外,您尝试过什么吗?如果有多个endDate is,则应该使用第一个订单。在过去的一天里,我一直在试图找到一个解决方案——通过网络浏览各种排序技术。即使是一个建议也会有帮助的。是的!这让我朝着我需要的方向前进!非常感谢。
[{
  elem: '<div id="task7">',
  startDate: 864,
  endDate: 999,
  order: 0
},
{
  elem: '<div id="task6">',
  startDate: 918,
  endDate: 1053,
  order: 1
},
{
  elem: '<div id="task5">',
  startDate: 945,
  endDate: 1269,
  order: 2
},
{
  elem: '<div id="task4">',
  startDate: 972,
  endDate: 1107,
  order: 3
},
{
  elem: '<div id="task8">',
  startDate: 1026,
  endDate: 1161,
  order: 4
}]
[{
  elem: '<div id="task7">',
  startDate: 864,
  endDate: 999,
  order: 0
},
{
  elem: '<div id="task6">',
  startDate: 918,
  endDate: 1053,
  order: 1
},
{
  elem: '<div id="task5">',
  startDate: 945,
  endDate: 1269,
  order: 2
},
{
  elem: '<div id="task4">',
  startDate: 972,
  endDate: 1107,
  order: 3
},
{
  elem: '<div id="task8">',
  startDate: 1026,
  endDate: 1161,
  order: 0
}]