如何从 ionic 2 中的数组中过滤 json 数据
How to filter json data from array in ionic 2
我是 Ionic 2 的初学者。我已经成功地将数据从 URL 提取到 array.In 我的 json 响应中,有多个重复值。我使用 lodash 命令过滤 json 响应。但是我没有得到正确的结果,我 required.Please 给我解决了这个问题。
这是我的 json 回复:
{
"port_group": "Bandra Group Of Ports",
"port_name": "Dahanu"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Tarapur"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Navapur"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Satpati"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Kelwa mahim"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Arnala"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Uttan"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Versova"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Marve-Manori"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Bandra"
},
{
"port_group": "Mora Group Port",
"port_name": "Trombay"
},
{
"port_group": "Mora Group Port",
"port_name": "Panvel (Ulva - Belapur)"
},
{
"port_group": "Mora Group Port",
"port_name": "Mora"
},
{
"port_group": "Mora Group Port",
"port_name": "Karanja (Rewas-Dharamtar)"
},
{
"port_group": "Mora Group Port",
"port_name": "Mandawa"
},
{
"port_group": "Mora Group Port",
"port_name": "Thane"
},
{
"port_group": "Mora Group Port",
"port_name": "Bhiwandi"
},
{
"port_group": "Mora Group Port",
"port_name": "Vasai"
},
{
"port_group": "Mora Group Port",
"port_name": "Kalyan"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Thal"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Alibaug"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Rewdanda"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Borli-Mandla"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Nandgaon "
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Murud"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Dighi"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Mandad"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Kumbharu"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Shriwardhan"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Bankot"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Borya"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Dabhol"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Harnai"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Jaigad"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Kelashi"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Palshet"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Ratnagiri"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Varwade"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Aachare"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Devgad"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Purngad"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Vijaydurg"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Jaitapur"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Kiranpani"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Redi"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Niwati "
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Vengurla"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Malvan"
}
];
在此响应中,大多数 port_group 都是相同的,并且 port_group 的每个 port_name不同
这是.ts代码
var newJsonFile = _.uniqBy(jsonarray, 'port_group');
//var filtered = _.uniqWith(jsonarray, _.isEqual);
this.information = newJsonFile;
这是我使用这段代码后得到的
我得到的结果是:
班德拉港口集团
- 达哈努
但我需要这个结果:
班德拉港口集团
- 达哈努
- 塔拉普尔
- 纳瓦布尔
- 斋月
- Kelwa mahim
- 阿纳拉
- Versova
请帮忙解决这个问题。
您可以使用 array#reduce
根据 port_group
对数据进行分组。
var data = [{ "port_group": "Bandra Group Of Ports", "port_name": "Dahanu" }, { "port_group": "Bandra Group Of Ports", "port_name": "Tarapur" }, { "port_group": "Bandra Group Of Ports", "port_name": "Navapur" }, { "port_group": "Bandra Group Of Ports", "port_name":"Satpati" }, { "port_group": "Bandra Group Of Ports", "port_name": "Kelwa mahim" }, { "port_group": "Bandra Group Of Ports", "port_name": "Arnala" }, { "port_group": "Bandra Group Of Ports", "port_name": "Uttan" }, { "port_group": "Bandra Group Of Ports","port_name": "Versova" }, { "port_group": "Bandra Group Of Ports", "port_name": "Marve-Manori" }, { "port_group": "Bandra Group Of Ports", "port_name": "Bandra" }, { "port_group": "Mora Group Port", "port_name": "Trombay" }, { "port_group": "Mora GroupPort", "port_name": "Panvel (Ulva - Belapur)" }, { "port_group": "Mora Group Port", "port_name": "Mora" }, { "port_group": "Mora Group Port", "port_name": "Karanja (Rewas-Dharamtar)" }, { "port_group": "Mora Group Port", "port_name": "Mandawa" }, { "port_group":"Mora Group Port", "port_name": "Thane" }, { "port_group": "Mora Group Port", "port_name": "Bhiwandi" }, { "port_group": "Mora Group Port", "port_name": "Vasai" }, { "port_group": "Mora Group Port", "port_name": "Kalyan" }, { "port_group": "Rajpuri Groupof Ports", "port_name": "Thal" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Alibaug" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Rewdanda" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Borli-Mandla" }, { "port_group":"Rajpuri Group of Ports", "port_name": "Nandgaon " }, { "port_group": "Rajpuri Group of Ports", "port_name": "Murud" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Dighi" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Mandad" },{ "port_group": "Rajpuri Group of Ports", "port_name": "Kumbharu" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Shriwardhan" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Bankot" }, { "port_group": "Ratnagiri Group Of Ports","port_name": "Borya" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Dabhol" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Harnai" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Jaigad" }, { "port_group": "RatnagiriGroup Of Ports", "port_name": "Kelashi" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Palshet" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Ratnagiri" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Varwade"}, { "port_group": "Vengurla Group Of Ports", "port_name": "Aachare" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Devgad" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Purngad" }, { "port_group": "Vengurla Group Of Ports","port_name": "Vijaydurg" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Jaitapur" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Kiranpani" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Redi" }, { "port_group":"Vengurla Group Of Ports", "port_name": "Niwati " }, { "port_group": "Vengurla Group Of Ports", "port_name": "Vengurla" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Malvan" }],
result = Object.values(data.reduce((r,o) => {
r[o.port_group] = r[o.port_group] || {name: o.port_group, children: []};
r[o.port_group].children.push({port_name: o.port_name});
return r;
},{}));
console.log(result);
使用 Lodash 的 _.groupBy()
、_.map()
和 _.mapValues()
:
_(input).groupBy('port_group').mapValues(ps => _(ps).map(p => p.port_name));
完整片段:
const input = [{
"port_group": "Bandra Group Of Ports",
"port_name": "Dahanu"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Tarapur"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Navapur"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Satpati"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Kelwa mahim"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Arnala"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Uttan"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Versova"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Marve-Manori"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Bandra"
},
{
"port_group": "Mora Group Port",
"port_name": "Trombay"
},
{
"port_group": "Mora Group Port",
"port_name": "Panvel (Ulva - Belapur)"
},
{
"port_group": "Mora Group Port",
"port_name": "Mora"
},
{
"port_group": "Mora Group Port",
"port_name": "Karanja (Rewas-Dharamtar)"
},
{
"port_group": "Mora Group Port",
"port_name": "Mandawa"
},
{
"port_group": "Mora Group Port",
"port_name": "Thane"
},
{
"port_group": "Mora Group Port",
"port_name": "Bhiwandi"
},
{
"port_group": "Mora Group Port",
"port_name": "Vasai"
},
{
"port_group": "Mora Group Port",
"port_name": "Kalyan"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Thal"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Alibaug"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Rewdanda"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Borli-Mandla"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Nandgaon "
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Murud"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Dighi"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Mandad"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Kumbharu"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Shriwardhan"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Bankot"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Borya"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Dabhol"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Harnai"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Jaigad"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Kelashi"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Palshet"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Ratnagiri"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Varwade"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Aachare"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Devgad"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Purngad"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Vijaydurg"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Jaitapur"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Kiranpani"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Redi"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Niwati "
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Vengurla"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Malvan"
}
];
const output = _(input).groupBy('port_group').mapValues(ps => _(ps).map(p => p.port_name));
console.log(output);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
我是 Ionic 2 的初学者。我已经成功地将数据从 URL 提取到 array.In 我的 json 响应中,有多个重复值。我使用 lodash 命令过滤 json 响应。但是我没有得到正确的结果,我 required.Please 给我解决了这个问题。
这是我的 json 回复:
{
"port_group": "Bandra Group Of Ports",
"port_name": "Dahanu"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Tarapur"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Navapur"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Satpati"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Kelwa mahim"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Arnala"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Uttan"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Versova"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Marve-Manori"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Bandra"
},
{
"port_group": "Mora Group Port",
"port_name": "Trombay"
},
{
"port_group": "Mora Group Port",
"port_name": "Panvel (Ulva - Belapur)"
},
{
"port_group": "Mora Group Port",
"port_name": "Mora"
},
{
"port_group": "Mora Group Port",
"port_name": "Karanja (Rewas-Dharamtar)"
},
{
"port_group": "Mora Group Port",
"port_name": "Mandawa"
},
{
"port_group": "Mora Group Port",
"port_name": "Thane"
},
{
"port_group": "Mora Group Port",
"port_name": "Bhiwandi"
},
{
"port_group": "Mora Group Port",
"port_name": "Vasai"
},
{
"port_group": "Mora Group Port",
"port_name": "Kalyan"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Thal"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Alibaug"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Rewdanda"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Borli-Mandla"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Nandgaon "
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Murud"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Dighi"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Mandad"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Kumbharu"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Shriwardhan"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Bankot"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Borya"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Dabhol"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Harnai"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Jaigad"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Kelashi"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Palshet"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Ratnagiri"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Varwade"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Aachare"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Devgad"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Purngad"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Vijaydurg"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Jaitapur"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Kiranpani"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Redi"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Niwati "
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Vengurla"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Malvan"
}
];
在此响应中,大多数 port_group 都是相同的,并且 port_group 的每个 port_name不同
这是.ts代码
var newJsonFile = _.uniqBy(jsonarray, 'port_group');
//var filtered = _.uniqWith(jsonarray, _.isEqual);
this.information = newJsonFile;
这是我使用这段代码后得到的
我得到的结果是:
班德拉港口集团
- 达哈努
但我需要这个结果:
班德拉港口集团
- 达哈努
- 塔拉普尔
- 纳瓦布尔
- 斋月
- Kelwa mahim
- 阿纳拉
- Versova
请帮忙解决这个问题。
您可以使用 array#reduce
根据 port_group
对数据进行分组。
var data = [{ "port_group": "Bandra Group Of Ports", "port_name": "Dahanu" }, { "port_group": "Bandra Group Of Ports", "port_name": "Tarapur" }, { "port_group": "Bandra Group Of Ports", "port_name": "Navapur" }, { "port_group": "Bandra Group Of Ports", "port_name":"Satpati" }, { "port_group": "Bandra Group Of Ports", "port_name": "Kelwa mahim" }, { "port_group": "Bandra Group Of Ports", "port_name": "Arnala" }, { "port_group": "Bandra Group Of Ports", "port_name": "Uttan" }, { "port_group": "Bandra Group Of Ports","port_name": "Versova" }, { "port_group": "Bandra Group Of Ports", "port_name": "Marve-Manori" }, { "port_group": "Bandra Group Of Ports", "port_name": "Bandra" }, { "port_group": "Mora Group Port", "port_name": "Trombay" }, { "port_group": "Mora GroupPort", "port_name": "Panvel (Ulva - Belapur)" }, { "port_group": "Mora Group Port", "port_name": "Mora" }, { "port_group": "Mora Group Port", "port_name": "Karanja (Rewas-Dharamtar)" }, { "port_group": "Mora Group Port", "port_name": "Mandawa" }, { "port_group":"Mora Group Port", "port_name": "Thane" }, { "port_group": "Mora Group Port", "port_name": "Bhiwandi" }, { "port_group": "Mora Group Port", "port_name": "Vasai" }, { "port_group": "Mora Group Port", "port_name": "Kalyan" }, { "port_group": "Rajpuri Groupof Ports", "port_name": "Thal" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Alibaug" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Rewdanda" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Borli-Mandla" }, { "port_group":"Rajpuri Group of Ports", "port_name": "Nandgaon " }, { "port_group": "Rajpuri Group of Ports", "port_name": "Murud" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Dighi" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Mandad" },{ "port_group": "Rajpuri Group of Ports", "port_name": "Kumbharu" }, { "port_group": "Rajpuri Group of Ports", "port_name": "Shriwardhan" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Bankot" }, { "port_group": "Ratnagiri Group Of Ports","port_name": "Borya" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Dabhol" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Harnai" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Jaigad" }, { "port_group": "RatnagiriGroup Of Ports", "port_name": "Kelashi" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Palshet" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Ratnagiri" }, { "port_group": "Ratnagiri Group Of Ports", "port_name": "Varwade"}, { "port_group": "Vengurla Group Of Ports", "port_name": "Aachare" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Devgad" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Purngad" }, { "port_group": "Vengurla Group Of Ports","port_name": "Vijaydurg" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Jaitapur" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Kiranpani" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Redi" }, { "port_group":"Vengurla Group Of Ports", "port_name": "Niwati " }, { "port_group": "Vengurla Group Of Ports", "port_name": "Vengurla" }, { "port_group": "Vengurla Group Of Ports", "port_name": "Malvan" }],
result = Object.values(data.reduce((r,o) => {
r[o.port_group] = r[o.port_group] || {name: o.port_group, children: []};
r[o.port_group].children.push({port_name: o.port_name});
return r;
},{}));
console.log(result);
使用 Lodash 的 _.groupBy()
、_.map()
和 _.mapValues()
:
_(input).groupBy('port_group').mapValues(ps => _(ps).map(p => p.port_name));
完整片段:
const input = [{
"port_group": "Bandra Group Of Ports",
"port_name": "Dahanu"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Tarapur"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Navapur"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Satpati"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Kelwa mahim"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Arnala"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Uttan"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Versova"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Marve-Manori"
},
{
"port_group": "Bandra Group Of Ports",
"port_name": "Bandra"
},
{
"port_group": "Mora Group Port",
"port_name": "Trombay"
},
{
"port_group": "Mora Group Port",
"port_name": "Panvel (Ulva - Belapur)"
},
{
"port_group": "Mora Group Port",
"port_name": "Mora"
},
{
"port_group": "Mora Group Port",
"port_name": "Karanja (Rewas-Dharamtar)"
},
{
"port_group": "Mora Group Port",
"port_name": "Mandawa"
},
{
"port_group": "Mora Group Port",
"port_name": "Thane"
},
{
"port_group": "Mora Group Port",
"port_name": "Bhiwandi"
},
{
"port_group": "Mora Group Port",
"port_name": "Vasai"
},
{
"port_group": "Mora Group Port",
"port_name": "Kalyan"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Thal"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Alibaug"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Rewdanda"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Borli-Mandla"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Nandgaon "
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Murud"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Dighi"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Mandad"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Kumbharu"
},
{
"port_group": "Rajpuri Group of Ports",
"port_name": "Shriwardhan"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Bankot"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Borya"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Dabhol"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Harnai"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Jaigad"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Kelashi"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Palshet"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Ratnagiri"
},
{
"port_group": "Ratnagiri Group Of Ports",
"port_name": "Varwade"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Aachare"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Devgad"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Purngad"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Vijaydurg"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Jaitapur"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Kiranpani"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Redi"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Niwati "
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Vengurla"
},
{
"port_group": "Vengurla Group Of Ports",
"port_name": "Malvan"
}
];
const output = _(input).groupBy('port_group').mapValues(ps => _(ps).map(p => p.port_name));
console.log(output);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>