Javascript 从对象获取字段并以数组形式返回

Javascript 从对象获取字段并以数组形式返回,javascript,arrays,json,Javascript,Arrays,Json,我有两个链接的对象 {scope: "T4251", data: Array(500)} {scope: "T7910", data: Array(500)} {scope: "T213910", data: Array(500)} 数据对象由500个字段组成(范围链接到下面) 如何通过首先获取一个唯一的“scope”对象,然后从scope的数组对象中包含的数据数组中获取每个日期(必须是唯一的)一次dateTime对象来迭代这个多对象 我想把唯一的dateTime放到一个数组中 数组应导致:

我有两个链接的对象

{scope: "T4251", data: Array(500)}
{scope: "T7910", data: Array(500)}
{scope: "T213910", data: Array(500)}
数据对象由500个字段组成(范围链接到下面)

如何通过首先获取一个唯一的“scope”对象,然后从scope的数组对象中包含的数据数组中获取每个日期(必须是唯一的)一次dateTime对象来迭代这个多对象

我想把唯一的dateTime放到一个数组中

数组应导致:

[unique dateTime, unique dateTime, unique dateTime] 

你可以用两个函数来完成。 首先收集日期时间

const extractField= (data, field) => data.map( obj => obj[field])
第二个过滤器是双重的

const filterDoubles = array => array.reduce( (result, item) => result.indexOf(item) > -1 ? result : result.concat(item),[])
然后:

filterDoubles(extractField(yourObject, 'dateTime'));

欢迎来到堆栈溢出!请访问,采取的,看看什么和。做一些研究,搜索相关话题等;如果你被卡住了,发布一篇你的尝试,记下输入和预期输出。不确定你的预期输出应该是什么,下面的内容会产生你想要的吗
yourData.reduce((result,item)=>result.concat(item.data),[]).reduce((result,item)=>(result[item.dateTime]=result[item.dateTime]| |[],result[item.dateTime].push(item),result),{})
但是{@id}对象是scope对象(array500)的一部分,我不确定我是否完全理解您需要什么。你能更具体一点吗?
filterDoubles(extractField(yourObject, 'dateTime'));