JSON排序输出

时间:2019-05-09 19:26:53

标签: javascript json

我需要过滤JSON输出

这是我从中读取的数组...

{
  "AppointmentList":[{
    "Code":"10",
    "Index":"2000",
    "ResourceType":"1010",
    "ResourceId":"J",
    "ResourceName":"Jesper",
    "Active":true,
    "Date":"2019-05-06T00:00:00Z",
    "PunchIn":"07:30",
    "PunchOut":"16:00",
    "BreakStart1":"09:00",
    "BreakEnd1":"09:15",
    "BreakStart2":"11:30",
    "BreakEnd2":"12:00",
    "BreakStart3":"14:00",
    "BreakEnd3":"14:15",
    "AppointmentList":[{"Date":"2019-05-06T00:00:00Z",
    "StartTime":"07:00",
    "EndTime":"07:45",
    "OrderNo":19283},
      {"Date":"2019-05-06T00:00:00Z",
      "StartTime":"07:45",
      "EndTime":"15:30",
      "OrderNo":332211}],
      "AbsenceList":[]
},
    "Code":"101",
    "Index":"2000",
    "ResourceType":"1010",
    "ResourceId":"G",
    "ResourceName":"Gunner",
    "Active":true,
    "Date":"2019-05-06T00:00:00Z",
    "PunchIn":"07:30",
    "PunchOut":"16:00",
    "BreakStart1":"09:00",
    "BreakEnd1":"09:15",
    "BreakStart2":"11:30",
    "BreakEnd2":"12:00",
    "BreakStart3":"14:00",
    "BreakEnd3":"14:15",
    "AppointmentList":[{"Date":"2019-05-06T00:00:00Z",
    "StartTime":"07:00",
    "EndTime":"07:45",
    "OrderNo":19283},
      {"Date":"2019-05-06T00:00:00Z",
      "StartTime":"07:45",
      "EndTime":"15:30",
      "OrderNo":112233}],
      "AbsenceList":[]

我现在知道了:

let orders = Data.AppointmentList.flatMap(a => a.AppointmentList).map(a => a.OrderNo);
console.log(orders.join(', '));

我只需要输出OrderNo,其中Code =“ 101”,而OrderNo!= 0

所以 AppointmentList.Code ===“ 101” AppointmentList.AppointmentList.OrderNo!= 0

输出应为= 112233

1 个答案:

答案 0 :(得分:0)

始终尝试共享Minimal, Complete, and Verifiable example

也就是说,您可以使用filter来实现它。

let Data = {
  "AppointmentList": [
    {
      "Code": "10",
      "AppointmentList": [
        {
          "OrderNo": 19283
        },
        {
          "OrderNo": 332211
        }
      ]
    },
    {
      "Code": "101",
      "AppointmentList": [
        {
          "OrderNo": 19283
        },
        {
          "OrderNo": 112233
        }
      ]
    }
  ]
};

let orders = Data.AppointmentList
                   .filter(a => a.Code === "101") 
                   .flatMap(a => a.AppointmentList)
                   .filter(a => a.OrderNo !== 0);

let orderNos = orders.map(a => a.OrderNo);
console.log(orderNos)

相关问题