代码之家  ›  专栏  ›  技术社区  ›  pac

返回了多个主要为空的ID数组

  •  0
  • pac  · 技术社区  · 7 年前

    我不熟悉node。诚然,我可能在努力学习json,但我使用以下代码来解析json,寻找 id 当相应的 name 包含 uuid . 这个 uuid 从其他函数传递。

    var arrFound = Object.values(json).filter(function(obj) {
        return obj.id && obj.name.includes(uuid);
    }).map(function(obj) {
        return obj.id;
    });
    console.log (arrFound); // array of matched id values
    

    我想这会有回报 [ 'local-1517085058363' ] .

    相反,我得到的是:

    []
    []
    []
    []
    []
    []
    []
    []
    []
    []
    []
    [ 'local-1517085058363' ]
    [ 'local-1517085058363' ]
    [ 'local-1517085058363' ]
    [ 'local-1517085058363' ]
    [ 'local-1517085058363' ]
    [ 'local-1517085058363' ]
    [ 'local-1517085058363' ]
    [ 'local-1517085058363' ]
    [ 'local-1517085058363' ]
    

    json来自Spark HistoryServer API( http://127.0.0.1:18080/api/v1/applications ),虽然它只是JSON,但它来自哪里并不重要。以下是一个示例:

    [{
      "id" : "local-1517085058363",
      "name" : "TeraGen (5MB) 6e722700-0397-11e8-ae84-b54a3ebb27aa",
      "attempts" : [ {
        "startTime" : "2018-01-27T19:22:37.513GMT",
        "endTime" : "2018-01-27T19:22:43.253GMT",
        "lastUpdated" : "2018-01-27T19:22:43.000GMT",
        "duration" : 5740,
        "sparkUser" : "paulcarron",
        "completed" : true,
        "endTimeEpoch" : 1517080963253,
        "startTimeEpoch" : 1517080957513,
        "lastUpdatedEpoch" : 1517080963000
      } ]
    } ] 
    

    此外,我正在Gulp上运行代码。我不确定这是否会有什么不同。

    如何解决此问题,以便只返回一个id?

    1 回复  |  直到 7 年前
        1
  •  0
  •   pac    7 年前

    有多个数组,因此可以解释它们的来源。我使用reduce()来获取我要查找的对象。