抓取对象中的字段并将其返回到数组中

时间:2018-12-12 10:50:17

标签: javascript arrays json

我有两个链接的对象

{scope: "T4251", data: Array(500)}
{scope: "T7910", data: Array(500)}
{scope: "T213910", data: Array(500)}

,数据对象由这些字段中的500个组成(作用域链接到下面)

{@id: "eddnsf", dateTime: "2018-12-12T07:30:00Z", value: -0.045}
{@id: "sfdkjk", dateTime: "2018-12-12T04:30:00Z", value: -0.345}
{@id: "dfjewf", dateTime: "2018-11-12T02:00:00Z", value: -0.445}
{@id: "dfjewf", dateTime: "2018-10-12T04:40:00Z", value: -0.045}
{@id: "dfjewf", dateTime: "2018-10-12T06:00:00Z", value: -0.145}
{@id: "dfjewf", dateTime: "2018-10-12T02:00:00Z", value: -0.045}

如何通过首先获取唯一的“作用域”对象然后再从范围的数组对象中包含的数据数组中每个日期对象(必须是唯一的)仅捕获一次dateTime来迭代此多对象?

我希望将唯一的dateTime放入单个数组中

数组应导致:

[unique dateTime, unique dateTime, unique dateTime] 

1 个答案:

答案 0 :(得分:1)

您可以使用两个功能来做到这一点。 首先收集dateTimes

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'));