我不熟悉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?