如何在Javascript中操作集合



我正试图从另一个javascript对象中获取一个对象。我已经给小组写了以下代码:

function execute(args) {
const networkHospitals = args[0];
cummulatedArray = _.groupBy(networkHospitals, "cityName");
console.log(cummulatedArray);
}

以下是我从上面的代码中得到的示例输出:

{
Trichy: [
{
hospitalName: 'asd',
address_1: 'Friday',
}
]
}

但我想以这种格式返回数据:

{
"key": "Tirchy",
"value": [{
"hospitalName": "asd",
"address_1": "Friday"
}],
}

这是输入数据:

"networkHospitals": 
[{
"hospitalName": "abc",
"address_1": "Friday",
"cityName": "Trichy"
}],

如果你能指导我如何操作我得到的JSON数据,我将不胜感激。

cityName分组后,映射组,并为每个组创建一个对象。如果需要,映射值,并从每个对象中省略cityName属性。

const networkHospitals = [{"hospitalName":"abc","address_1":"Friday","cityName":"Trichy"}]
const result = _.map(
_.groupBy(networkHospitals, 'cityName'),
(val, key) => ({
key,
value: val.map(o => _.omit(o, 'cityName'))
})
)
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

这就是lodash的分组方式,如果你想要不同的形状,你可以在结束时进行简单的转换

identity
collection = [
{cityName: "A", hospitalName: "Hospital A1", address: 'adr A1'},
{cityName: "A", hospitalName: "Hospital A2", address: 'adr A2'},
{cityName: "A", hospitalName: "Hospital A3", address: 'adr A3'},
{cityName: "B", hospitalName: "Hospital B1", address: 'adr B1'},
{cityName: "C", hospitalName: "Hospital C1", address: 'adr C1'},
{cityName: "C", hospitalName: "Hospital C2", address: 'adr C2'},
]
groupped = _.groupBy(collection, 'cityName')
console.log(Object.keys(groupped).map(
cityName => ({key: cityName, value: groupped[cityName]})
));

它会给你这个:

[
{
key: 'A',
value: [
{
address: 'adr A1',
cityName: 'A',
hospitalName: 'Hospital A1'
},
{
address: 'adr A2',
cityName: 'A',
hospitalName: 'Hospital A2'
},
{
address: 'adr A3',
cityName: 'A',
hospitalName: 'Hospital A3'
}
]
},
{
key: 'B',
value: [
{
address: 'adr B1',
cityName: 'B',
hospitalName: 'Hospital B1'
}
]
},
{
key: 'C',
value: [
{
address: 'adr C1',
cityName: 'C',
hospitalName: 'Hospital C1'
},
{
address: 'adr C2',
cityName: 'C',
hospitalName: 'Hospital C2'
}
]
}
]

最新更新