【发布时间】:2019-08-31 14:09:47
【问题描述】:
我有下面的数组
const array = [
{
key: 'TSJUcgLGig2UOdjAzlqq4KW5GK6PKXHC2ndw40HYIss7EKsV6nJ',
location: { lat: '22.7196', lng: '75.8577' },
address: { city: 'NY', country: 'USA' },
className: 'FourthActivity',
deviceId: '1111111111111111'
},
{
key: 'TSJUcgLGig2UOdjAzlqq4KW5GK6PKXHC2ndw40HYIss7EKsV6nJ',
location: { lat: '22.7196', lng: '75.8577' },
address: { city: 'NY', country: 'USA' },
className: 'FourthActivity',
deviceId: '222222222222222'
},
{
key: 'TSJUcgLGig2UOdjAzlqq4KW5GK6PKXHC2ndw40HYIss7EKsV6nJ',
location: { lat: '22.7196', lng: '75.8577' },
address: { city: 'Landon', country: 'UK' },
className: 'FourthActivity',
deviceId: '33333333333'
}
]
我必须使用对象内部的两个属性(即address 和className)对其进行分组。如何使用 loadash 或 javascript 做到这一点?
预期输出
[{
address: { city: 'NY', country: 'USA' }, className: 'FourthActivity',
count: 2,
data: [{
deviceId: 222222222222222,
}, {
deviceId: 1111111111111111,
}]
}, {
address: { city: 'Landon', country: 'UK' }, className: 'FourthActivity',
count: 1,
data: [{
deviceId: 33333333333,
}]
}]
我试过了,但是不行
var selectedVehicle = _.filter(array, 'address')
const selectedVehicles = _.groupBy(selectedVehicle, function(item) {
return item.makeCode;
})
console.log(selectedVehicles)
【问题讨论】:
-
city: 'NY', country: 'USA'和city: 'Landon', country: 'UK'在您的预期输出中来自哪里?它不在您的输入中。 -
更新了我的问题@CertainPerformance
标签: javascript arrays lodash