将对象数组析构为一个数组



我有这样的结果。

[ [ { _id: 5e0e46938d6bb7459407ad8b,
accountId: 58dc5b9f3107602dbaba1281,
buildingId: 5d254bb179584ebcbb68b712,
gatewayId: 5d254b64ba574040d9632ada,
deviceId: 5d25f9d2dc4aea7838b0aaa1,
movementIndex: 2.437685743915776,
fallStatus: 6,
breathingRate: 21,
breathingStatus: 1,
presenceStatus: 1,
heartRate: 88,
heartRateStatus: 1,
noMovementPeriod: 3,
__v: 0,
createdAt: 2020-01-02T19:37:55.423Z,
updatedAt: 2020-01-02T19:37:55.423Z } ],
[ { _id: 5e0e46678d6bb7459407ad76,
accountId: 58dc5b9f3107602dbaba1281,
buildingId: 5d254bb179584ebcbb68b712,
gatewayId: 5d254b64ba574040d9632ada,
deviceId: 5d25f9d2dc4aea7838b0aaa2,
movementIndex: 2.079566889716151,
fallStatus: 1,
breathingRate: 18,
breathingStatus: -1,
presenceStatus: 0,
heartRate: 92,
heartRateStatus: -1,
noMovementPeriod: 2,
__v: 0,
createdAt: 2020-01-02T19:37:11.972Z,
updatedAt: 2020-01-02T19:37:11.972Z } ],
]

如您所见,它们是单独的对象。 我希望它们作为元素在一个对象中,这样我只能有一个对象数组。

预期成果 -

[ { _id: 5e0e46938d6bb7459407ad8b,
accountId: 58dc5b9f3107602dbaba1281,
buildingId: 5d254bb179584ebcbb68b712,
gatewayId: 5d254b64ba574040d9632ada,
deviceId: 5d25f9d2dc4aea7838b0aaa1,
movementIndex: 2.437685743915776,
fallStatus: 6,
breathingRate: 21,
breathingStatus: 1,
presenceStatus: 1,
heartRate: 88,
heartRateStatus: 1,
noMovementPeriod: 3,
__v: 0,
createdAt: 2020-01-02T19:37:55.423Z,
updatedAt: 2020-01-02T19:37:55.423Z },
{ _id: 5e0e46678d6bb7459407ad76,
accountId: 58dc5b9f3107602dbaba1281,
buildingId: 5d254bb179584ebcbb68b712,
gatewayId: 5d254b64ba574040d9632ada,
deviceId: 5d25f9d2dc4aea7838b0aaa2,
movementIndex: 2.079566889716151,
fallStatus: 1,
breathingRate: 18,
breathingStatus: -1,
presenceStatus: 0,
heartRate: 92,
heartRateStatus: -1,
noMovementPeriod: 2,
__v: 0,
createdAt: 2020-01-02T19:37:11.972Z,
updatedAt: 2020-01-02T19:37:11.972Z } ]

我试图找出一个lodash,但没有得到任何结果。 非常感谢您的帮助。谢谢。

你可以只使用.flat()它对你来说就可以正常工作,无需循环

const data = [[{_id:"5e0 e46938d6bb7459407ad8b",accountId:"58 dc5b9f3107602dbaba1281",buildingId:"5 d254bb179584ebcbb68b712",gatewayId:"5 d254b64ba574040d9632ada",deviceId:"5 d25f9d2dc4aea7838b0aaa1",movementIndex:2.437685743915776,fallStatus:6,breathingRate:21,breathingStatus:1,presenceStatus:1,heartRate:88,heartRateStatus:1,noMovementPeriod:3,__v:0,createdAt:"2020 - 01 - 02 T19: 37: 55.423 Z",updatedAt:"2020 - 01 - 02 T19: 37: 55.423 Z"}],[{_id:"5e0 e46678d6bb7459407ad76",accountId:"58 dc5b9f3107602dbaba1281",buildingId:"5 d254bb179584ebcbb68b712",gatewayId:"5 d254b64ba574040d9632ada",deviceId:"5 d25f9d2dc4aea7838b0aaa2",movementIndex:2.079566889716151,fallStatus:1,breathingRate:18,breathingStatus:-1,presenceStatus:0,heartRate:92,heartRateStatus:-1,noMovementPeriod:2,__v:0,createdAt:"2020 - 01 - 02 T19: 37: 11.972 Z",updatedAt:"2020 - 01 - 02 T19: 37: 11.972 Z"}]];
const newData = data.flat();
console.log(newData);
.as-console-wrapper { max-height: 100% !important; top: 0; }

你的原始帖子有点不清楚,但我认为你有一个数组,里面是子数组,每个数组中都有一个对象?有点像这样?

var foo = [
[ { bar: "baz" } ],
[ { bar: "qux" } ]
];

据我所知,没有语法糖("解构"速记(可以做来扁平化它。但是Array.map()很简单:

var baz = foo.map(ea => ea[0]);
// baz = [ { bar: "baz" }, { bar: "qux"} ]

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

这是使用解构的解决方案

const arr1 = [[{......}], [{......}]]
const result = [...arr1[0], ...arr1[1]]

最新更新