首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >console.log(json2[key2].id)未定义

console.log(json2[key2].id)未定义
EN

Stack Overflow用户
提问于 2018-01-29 16:42:50
回答 2查看 48关注 0票数 0

我有这个node.js代码:

代码语言:javascript
复制
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)返回undefined。我在这里做错了什么?

这是我的JSON:

代码语言:javascript
复制
{ 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 } ] }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-29 17:11:09

下面是你需要做的:

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

运行代码片段,您就会明白了

代码语言:javascript
复制
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);

票数 1
EN

Stack Overflow用户

发布于 2018-01-29 17:05:35

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48497315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档