2016-01-23 35 views
-1

我一直在阅读所有我能找到的东西,但没有一个解决方案似乎提供了我需要的答案。从json对象中提取数据字段

具体来说,我仔细阅读了这Access/process (nested) objects, arrays or JSON,以及其他几十个帖子。

这里就是我试图完成:

我有一个大的物体,称为allData - ,我得到了来自MongoDB的JSON对象,它包含从每个读取所有数据的数组。

{pitch: -7.97, roll: -4.3, temp: 98, yaw: -129.83, time: "01/22/2016 17:28:47", …} 
{pitch: -8.04, roll: -4.41, temp: 97, yaw: -130.81, time: "01/22/2016 17:28:58", …} 

... 我想要做的是能与沿allData.pitch不起作用的线,但很明显的东西提取所有间距读数,因为每个数据读数中的一个元素allData阵列。所以我可以通过一个循环并做allData[x].pitch,但我希望更干净,更快的方式做到这一点 - 因为我可能想要提取每种类型的数据。

不幸的是,在这一点上,我没有能力简单地从数据库请求音高数据,所以我得到了整个回合。

最后一个问题是上述数组中的一个元素已经是数据对象。

+0

可能的http://stackoverflow.com/questions/10459917/traversing-through-json-string-to-inner-levels-using-recursive-的副本函数 - 如果是的话,随时删除您的问题 – mplungjan

+2

'var pitches = allData.map(function(o){return o.pitch;});' – Andreas

+0

对不起,在原始问题中不清楚... I我想回到他们记录的音调和数据/时间,以便我可以相应地绘制它们。 – Davidgs

回答

2

您可以利用Array.prototype.map()这个

var pitches = allData.map(function(d) { 
        return { 
         "pitch": d.pitch, 
         "time": d.time 
        }; 
       }); 
0

如果您无法控制从服务器返回的数据(即仅检索您想要的音高值),您将不得不循环以获取全部数据。