Javascript JQuery:如何将城市作为关键对象,将提供者作为子数组

Javascript JQuery:如何将城市作为关键对象,将提供者作为子数组,javascript,jquery,Javascript,Jquery,我想创建一个键对象数组,将提供程序作为子数组。这是我的样本数据,请帮忙 const data= [ {'city': 'LH','provider' : 'xyz'} {'city': 'KR','provider' : 'ABC'} {'city': 'LH','provider' : 'CDE'} {'city': 'KR','provider' : 'xyz'} {'city': 'LH','provider' : 'qwe'} ] 想要像这样的输出: result= [ { 'LH':

我想创建一个键对象数组,将提供程序作为子数组。这是我的样本数据,请帮忙

const data= [
{'city': 'LH','provider' : 'xyz'}
{'city': 'KR','provider' : 'ABC'}
{'city': 'LH','provider' : 'CDE'}
{'city': 'KR','provider' : 'xyz'}
{'city': 'LH','provider' : 'qwe'}
]
想要像这样的输出:

result= [
{
'LH':{'xyz','CDE','qwe'},
'KR':{'ABC','QWE'}
}
]

这个问题不包括任何jQuery,解决这个问题也不需要库

首先,您期望的JSON是不正确的。对象不能只有键而没有值。我相信你想要一个数组。此外,您不希望将数组中唯一的对象包装起来,只需将结果保留为对象即可。如果您想将结果包装到数组中,可以在完成压缩后这样做

您可以通过将当前的
提供者
分散到为每个
城市
存储的值中,来减少
数据

const
数据=[
{'city':'LH','provider':'xyz'},
{'city':'KR','provider':'ABC'},
{'city':'LH','provider':'CDE'},
{'city':'KR','provider':'xyz'},
{'city':'LH','provider':'qwe'}
],
结果=数据.reduce((acc,{city,provider})=>
({…acc[城市]:[…(acc[城市]| |[]),提供者]}),{});
控制台日志(结果)
.as控制台包装{top:0;最大高度:100%!重要;}