console.log(json2[key2].id) undefined



我有这个节点.js代码:

var json2 = JSON.parse(body2);
console.log(json2)
var arrFound2 = Object.keys(json2).filter(function(key2) {
    console.log(json2[key2].id)
    return json2[key2].id;
}).reduce(function(obj2, key2){
    obj2 = json2[key2].attempts[0].duration;
       console.log(obj2)
       return obj2;
}, {});
//console.log(arrFound);
callback(null, arrFound2);
});

当我运行它时,console.log(json2)返回 json,但console.log(json2[key2].id)返回未定义。我在这里做错了什么?

这是我的 JSON:

{ id: 'local-1517179209543',
  name: 'TeraGen (5MB) 30146960-047c-11e8-afb5-17a9edeb2d55',
  attempts: 
       [ { startTime: '2018-01-28T22:40:07.941GMT',
       endTime: '2018-01-28T22:40:17.739GMT',
       lastUpdated: '2018-01-28T22:40:17.000GMT',
       duration: 9798,
       sparkUser: 'paulcarron',
       completed: true,
       endTimeEpoch: 1517179217739,
       startTimeEpoch: 1517179207941,
       lastUpdatedEpoch: 1517179217000 } ] }

以下是您需要做的:

而不是传递return json2[key2].id;你只需要return json2[key2];

运行代码段,你会明白这个想法

var json2 = { 
  id: 'local-1517179209543',
  name: 'TeraGen (5MB) 30146960-047c-11e8-afb5-17a9edeb2d55',
  attempts: 
       [ { startTime: '2018-01-28T22:40:07.941GMT',
       endTime: '2018-01-28T22:40:17.739GMT',
       lastUpdated: '2018-01-28T22:40:17.000GMT',
       duration: 9798,
       sparkUser: 'paulcarron',
       completed: true,
       endTimeEpoch: 1517179217739,
       startTimeEpoch: 1517179207941,
       lastUpdatedEpoch: 1517179217000 } ] };
console.log(json2);
var arrFound2 = Object.keys(json2).filter(function(key2) {
    console.log(key2 , ' -----> ', json2[key2]);
    return json2[key2];
}).reduce(function(obj2, key2){
    obj2 = json2[key2].attempts[0].duration;
       console.log(obj2)
       return obj2;
}, {});
//console.log(arrFound);
callback(null, arrFound2);

console.log(json2[key2].id)是错误的,因为过滤器函数将数组传递给回调函数。您正在 Object.keys(json2( 上链接过滤器函数,这意味着过滤器函数将获取 json2 对象的键。要获取 JSON 的值,您只需使用json2[key2]

https://learn.microsoft.com/en-us/scripting/javascript/reference/filter-method-array-javascript

最新更新