微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Javascript 中操作集合?

如何解决如何在 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'},hospitalName: "Hospital A3",address: 'adr A3'},{cityName: "B",hospitalName: "Hospital B1",address: 'adr B1'},{cityName: "C",hospitalName: "Hospital C1",address: 'adr C1'},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',hospitalName: 'Hospital A2'
      },{
        address: 'adr A3',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',hospitalName: 'Hospital C2'
      }
    ]
  }
]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。