Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建最后一项的Javascript排序数组_Javascript_Arrays_Json_Object - Fatal编程技术网

创建最后一项的Javascript排序数组

创建最后一项的Javascript排序数组,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我想使用以下条件对数组进行排序 我的json对象: [ { "id": 1, "status": true, "time": "2018-03-05T10:24:15.000Z", "complaintId": 1 }, { "id": 2, "status": true, "time": null, "complaintId": 1 }, { "id": 3, "status": true,

我想使用以下条件对数组进行排序

我的json对象:

[
  {
    "id": 1,
    "status": true,
    "time": "2018-03-05T10:24:15.000Z",
    "complaintId": 1
  },
  {
    "id": 2,
    "status": true,
    "time": null,
    "complaintId": 1
  },
  {
    "id": 3,
    "status": true,
    "time": "2018-03-05T10:53:14.000Z",
    "complaintId": 2
  },
  {
    "id": 6,
    "status": false,
    "time": "2018-03-05T11:58:45.000Z",
    "complaintId": 1
  },
  {
    "id": 7,
    "status": true,
    "time": "2018-03-05T12:11:53.000Z",
    "complaintId": 1
  },
  {
    "id": 8,
    "status": false,
    "time": "2018-03-05T13:23:13.000Z",
    "complaintId": 2
  },
  {
    "id": 9,
    "status": true,
    "time": "2018-03-05T08:17:18.000Z",
    "complaintId": 3
  },
  {
    "id": 10,
    "status": true,
    "time": "2018-03-05T12:32:08.000Z",
    "complaintId": 2
  }
]
我对我的工作提出了抱怨

我需要使用位于最后一个位置的complaintId获取times的json对象,例如,对象中有许多complaintId:1

我只需要得到最后抱怨过的东西

我的预期产出:

[
  {
    "id": 7,
    "status": true,
    "time": "2018-03-05T12:11:53.000Z",
    "complaintId": 1
  },
  {
    "id": 9,
    "status": true,
    "time": "2018-03-05T08:17:18.000Z",
    "complaintId": 3
  },
  {
    "id": 10,
    "status": true,
    "time": "2018-03-05T12:32:08.000Z",
    "complaintId": 2
  }
]
您可以使用
array#reduce
并针对每种类型的
complaintId
检查它是否没有
time
值,然后更新它或对象是否有time值,然后更新与该
complaintId
对应的值

var data=[{“id”:1,“status”:true,“time”:“2018-03-05T10:24:15.000Z”,“complaintId”:1},{“id”:2,“status”:true,“time”:null,“complaintId”:1},{“id”:3,“status”:true,“time”:“2018-03-05T10:53:14.000Z”,“complaintId”:2},{“id”:6,“status”:false,“time”:“2018-03-05T11:58:45.000Z”,“complaintId”:1},{“status”:true,“time”:“2018-03-05T12:11:53.000Z”,“complaintId”:1},{“id”:8,“status”:false,“time”:“2018-03-05T13:23:13.000Z”,“complaintId”:2},{“id”:9,“status”:true,“time”:“2018-03-05T08:17:18.000Z”,“complaintId”:3},{“id”:10,“status”:true,“time”:“2018-03-05T12:32:08.000Z”,“complaintId”:2},
结果=对象值(数据减少((r,o)=>{
如果(!r[o.complaintId]| |!r[o.complaintId].time | | o.time)
r[o.complaintId]={…o};
返回r;
},{}))
.sort((a,b)=>a.id-b.id);
控制台日志(结果)可能重复的