【问题标题】:Sort by Date key in my array of array containing objects在包含对象的数组中按日期键排序
【发布时间】:2020-03-06 05:13:15
【问题描述】:

我有一个包含多个数组的数组,每个数组包含多个对象。

我需要使用键对整个数组(json_act_super)进行排序:Created(升序的日期)

我尝试将数组展平,然后使用以下函数和其他各种方法进行排序,但没有奏效

例如:

 var yourFlattenedArray = flatten(json_act_super);
 new_arr = new_arr.sort(yourFlattenedArray );

 function flatten(array) {
    return !Array.isArray(array) ? array : [].concat.apply([], 
    array.map(flatten));
    }
 function custom_sort(a, b) {
      return new Date(a.Created).getTime() - new 
      Date(b.Created).getTime();
   }

  var json_act_super= [[{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"12/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"11/1/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Marius Jaselskis","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"15/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"12/1/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Marius Jaselskis","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"24/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"23/1/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Laura Ivanauskaite","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"4/5/2018","StatusValue":"Finished","ActivityText":null,"Created":"3/5/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Line Schøtt Jensen","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"15/5/2018","StatusValue":"Finished","ActivityText":null,"Created":"14/5/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Kristina Ciegyte","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"8/3/2019","StatusValue":"Finished","ActivityText":null,"Created":"7/3/2019","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Ana Moskaliova","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"25/3/2019","StatusValue":"Finished","ActivityText":null,"Created":"22/3/2019","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Brigita Kapcinske","ActivityType":"ESTHA_HandleClaim1P8"}],[{"Title":"Claim","CaseID":1575274,"DueDate":"15/10/2019","StatusValue":"Finished","ActivityText":null,"Created":"9/10/2019","Path":"/sites/estate/Lists/x Claim","ChangedBy":"Laura Kvedariene","ActivityType":"ESTHA_HandleClaim2P8"}],[{"Title":"636619761964313943","CaseID":1575274,"DueDate":"22/5/2018","StatusValue":"Finished","ActivityText":null,"Created":"15/5/2018","Path":"/sites/estate/Lists/x Mixed","ChangedBy":"Line Schøtt Jensen","ActivityType":"ESTHA_HandleProperty2P8"}],[{"Title":"636878973199308438","CaseID":1575274,"DueDate":"2/4/2019","StatusValue":"Finished","ActivityText":null,"Created":"11/3/2019","Path":"/sites/estate/Lists/x Mixed Follow Up DK","ChangedBy":"Helle Vinther Lorenzen","ActivityType":"ESTHA_FollowUponProperty2P8"}],[{"Title":"636514502410561268","CaseID":1575274,"DueDate":"16/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"13/1/2018","Path":"/sites/estate/Lists/x Mixed Urgent","ChangedBy":"Marianne Rohde","ActivityType":"ESTHA_HandlePropertyUrgent2P8"},{"Title":"636514502429795141","CaseID":1575274,"DueDate":"16/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"13/1/2018","Path":"/sites/estate/Lists/x Mixed Urgent","ChangedBy":"Marianne Rohde","ActivityType":"ESTHA_HandlePropertyUrgent2P8"},{"Title":"636876411401152914","CaseID":1575274,"DueDate":"11/3/2019","StatusValue":"Finished","ActivityText":null,"Created":"8/3/2019","Path":"/sites/estate/Lists/x Mixed Urgent","ChangedBy":"Kim Boysen","ActivityType":"ESTHA_HandlePropertyUrgent2P8"},{"Title":"636891115107285634","CaseID":1575274,"DueDate":"26/3/2019","StatusValue":"Finished","ActivityText":null,"Created":"25/3/2019","Path":"/sites/estate/Lists/x Mixed Urgent","ChangedBy":"Helle Vinther Lorenzen","ActivityType":"ESTHA_HandlePropertyUrgent2P8"}],[{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"1/2/2018","StatusValue":"Finished","ActivityText":null,"Created":"4/1/2018","Path":"/sites/estate/Lists/Anmeld krav","ChangedBy":"Kristina Ciegyte","ActivityType":"ESTHA_SubmitClaimP8"}],[{"Title":"636793139973643792","CaseID":1575274,"DueDate":"7/1/2019","StatusValue":"Finished","ActivityText":null,"Created":"2/12/2018","Path":"/sites/estate/Lists/Opflgning  6 mneder","ChangedBy":"RPA task 1750 PEH 3860 Closing manual remind 6 months follow up activities","ActivityType":"Opfølgning - 6 måneder"}]]

扁平化和排序不起作用。请帮助我按时间顺序对整个事物进行排序(按创建日期排序)

【问题讨论】:

    标签: javascript arrays flatten


    【解决方案1】:

    需要将数组展平(可以使用内置的flatten方法),然后使用sort方法进行升序排序:

    var json_act_super= [[{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"12/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"11/1/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Marius Jaselskis","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"15/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"12/1/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Marius Jaselskis","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"24/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"23/1/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Laura Ivanauskaite","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"4/5/2018","StatusValue":"Finished","ActivityText":null,"Created":"3/5/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Line Schøtt Jensen","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"15/5/2018","StatusValue":"Finished","ActivityText":null,"Created":"14/5/2018","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Kristina Ciegyte","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"8/3/2019","StatusValue":"Finished","ActivityText":null,"Created":"7/3/2019","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Ana Moskaliova","ActivityType":"ESTHA_HandleClaim1P8"},{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"25/3/2019","StatusValue":"Finished","ActivityText":null,"Created":"22/3/2019","Path":"/sites/estate/Lists/Handle Mail 1","ChangedBy":"Brigita Kapcinske","ActivityType":"ESTHA_HandleClaim1P8"}],[{"Title":"Claim","CaseID":1575274,"DueDate":"15/10/2019","StatusValue":"Finished","ActivityText":null,"Created":"9/10/2019","Path":"/sites/estate/Lists/x Claim","ChangedBy":"Laura Kvedariene","ActivityType":"ESTHA_HandleClaim2P8"}],[{"Title":"636619761964313943","CaseID":1575274,"DueDate":"22/5/2018","StatusValue":"Finished","ActivityText":null,"Created":"15/5/2018","Path":"/sites/estate/Lists/x Mixed","ChangedBy":"Line Schøtt Jensen","ActivityType":"ESTHA_HandleProperty2P8"}],[{"Title":"636878973199308438","CaseID":1575274,"DueDate":"2/4/2019","StatusValue":"Finished","ActivityText":null,"Created":"11/3/2019","Path":"/sites/estate/Lists/x Mixed Follow Up DK","ChangedBy":"Helle Vinther Lorenzen","ActivityType":"ESTHA_FollowUponProperty2P8"}],[{"Title":"636514502410561268","CaseID":1575274,"DueDate":"16/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"13/1/2018","Path":"/sites/estate/Lists/x Mixed Urgent","ChangedBy":"Marianne Rohde","ActivityType":"ESTHA_HandlePropertyUrgent2P8"},{"Title":"636514502429795141","CaseID":1575274,"DueDate":"16/1/2018","StatusValue":"Finished","ActivityText":null,"Created":"13/1/2018","Path":"/sites/estate/Lists/x Mixed Urgent","ChangedBy":"Marianne Rohde","ActivityType":"ESTHA_HandlePropertyUrgent2P8"},{"Title":"636876411401152914","CaseID":1575274,"DueDate":"11/3/2019","StatusValue":"Finished","ActivityText":null,"Created":"8/3/2019","Path":"/sites/estate/Lists/x Mixed Urgent","ChangedBy":"Kim Boysen","ActivityType":"ESTHA_HandlePropertyUrgent2P8"},{"Title":"636891115107285634","CaseID":1575274,"DueDate":"26/3/2019","StatusValue":"Finished","ActivityText":null,"Created":"25/3/2019","Path":"/sites/estate/Lists/x Mixed Urgent","ChangedBy":"Helle Vinther Lorenzen","ActivityType":"ESTHA_HandlePropertyUrgent2P8"}],[{"Title":"1008320604ELSEFALSIG_1008320604","CaseID":1575274,"DueDate":"1/2/2018","StatusValue":"Finished","ActivityText":null,"Created":"4/1/2018","Path":"/sites/estate/Lists/Anmeld krav","ChangedBy":"Kristina Ciegyte","ActivityType":"ESTHA_SubmitClaimP8"}],[{"Title":"636793139973643792","CaseID":1575274,"DueDate":"7/1/2019","StatusValue":"Finished","ActivityText":null,"Created":"2/12/2018","Path":"/sites/estate/Lists/Opflgning  6 mneder","ChangedBy":"RPA task 1750 PEH 3860 Closing manual remind 6 months follow up activities","ActivityType":"Opfølgning - 6 måneder"}]];
    
    const flattedArray = json_act_super.flat(2);
    
    flattedArray.sort((a, b) => {
       a = a['Created'].split('/');
       b = b['Created'].split('/');
       return a[2] - b[2] || a[1] - b[1] || a[0] - b[0];
    });
     
    console.log(JSON.stringify(flattedArray, null, 4));

    【讨论】:

    • 嗨...这个解决方案在控制台中非常好用,但在代码中却不行。知道为什么会这样吗?
    • 请记住,此解决方案假设您的日期格式为 DD/MM/YYYY,如果格式不同,则无法正确排序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    相关资源
    最近更新 更多