【发布时间】:2020-06-08 15:53:49
【问题描述】:
我有一个如下的 JSON 数组我想将我的 JSON 数组排序为 A-B、B-C、C-D、D-E!我正在尝试实现下面提到的输出!我的价值观实际上是航班出发地 - 目的地!例如 ATL-DXB、DXB-MIA、MIA-MAA !所以没有 D-A 场景!我想以某种方式订购它,如果起点是 ATL,那么订购应该从 ATL-DXB 开始!
function compare(a, b) {
if (b.origin != a.destination) return 1;
return 0;
}
const jsonArray = const jsonArray = [
{
"origin": "MAA",
"destination": "AVG"
},
{
"origin": "ATL",
"destination": "MIA"
},{
"origin": "DXB",
"destination": "MAA"
}, {
"origin": "MIA",
"destination": "DXB"
} ];
var result = jsonArray.sort(compare);
我得到的输出:
[
{ origin: 'MAA', destination: 'AVG' },
{ origin: 'ATL', destination: 'MIA' },
{ origin: 'DXB', destination: 'MAA' },
{ origin: 'MIA', destination: 'DXB' }
]
我想要的输出
[
{ origin: 'ATL', destination: 'MIA' },
{ origin: 'MIA', destination: 'DXB' },
{ origin: 'DXB', destination: 'MAA' },
{ origin: 'MAA', destination: 'AVG' }
]
【问题讨论】:
-
问题:你的价值观会一直保持这个顺序吗?是否有可能有
A-C、D-A?如果是,您希望如何处理? -
我的价值观其实是航班始发地-目的地!例如 ATL-DXB、DXB-MIA、MIA-MAA !所以没有 D-A 场景!我想以一种方式订购它,如果起点是 ATL,那么订购应该从 ATL-DXB 开始!希望这有意义吗? @AlgefAlmocera
-
return a.origin.localeCompare(b.origin) || a.destination.localeCompare(b.destination)?
标签: javascript node.js json javascript-objects