如何在JavaScript中实现排序,如下面PHP中的Given示例所示



请帮助了解如何在JavaScript上实现。我有数据类型。这种排序的目的是我有对象列,其中的列没有按要求排列。下面的这个函数只是简单地排列数组列为例。我已经在本地机器上测试了这些代码,这就是我得到的输出。

<?php
$data =  '[
{
"from": "Barcelona",
"to": "New York",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Flight",
"transportno": "B33",
"seatno": "Y15"
},
{
"from": "Barcelona",
"to": "Gerona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "Madrid",
"to": "Barcelona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "New York",
"to": "Stockholm",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Flight",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "Gerona",
"to": "Barcelona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
}
]';

现在我需要以这种方式对数据进行排序然后从马德里飞往巴塞罗那巴塞罗那至赫罗纳-赫罗纳至巴塞罗那-巴塞罗那至纽约-纽约至斯德哥尔摩-

$data_decode = json_decode($data, true);
usort($data_decode, function ($a, $b) {
return $a['to'] === $b['from'] ? 0 : 1;
});

print_r($data_decode);

输出

阵列([0]=>大堆([from]=>马德里[to]=>巴塞罗那[指令]=>[time]=>2018年02月02日20:05[运输]=>公共汽车[transportno]=>M31、M32、M33[seatno]=>任何)

[1] => Array
(
[from] => Barcelona
[to] => Gerona
[instruction] => 
[time] => 2018-02-02 20:05
[transport] => Bus
[transportno] => M31, M32, M33
[seatno] => Any
)
[2] => Array
(
[from] => Gerona
[to] => Barcelona
[instruction] => 
[time] => 2018-02-02 20:05
[transport] => Bus
[transportno] => M31, M32, M33
[seatno] => Any
)
[3] => Array
(
[from] => Barcelona
[to] => New York
[instruction] => 
[time] => 2018-02-02 20:05
[transport] => Flight
[transportno] => B33
[seatno] => Y15
)
[4] => Array
(
[from] => New York
[to] => Stockholm
[instruction] => 
[time] => 2018-02-02 20:05
[transport] => Flight
[transportno] => M31, M32, M33
[seatno] => Any
)

)[在0.1s内完成]

如何在JavaScript中获得此结果。您的帮助将不胜感激。

在javascript中,请参阅数组sort方法

var data = [
{
"from": "Barcelona",
"to": "New York",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Flight",
"transportno": "B33",
"seatno": "Y15"
},
{
"from": "Barcelona",
"to": "Gerona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "Madrid",
"to": "Barcelona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "New York",
"to": "Stockholm",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Flight",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "Gerona",
"to": "Barcelona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
}
];
var sortedData = data.sort( function( a, b ) {
return a[ 'to' ] === b[ 'from' ] ? 0 : 1;
} );
console.log( sortedData );

输出


[
{
"from": "Madrid",
"to": "Barcelona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "Barcelona",
"to": "Gerona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "Gerona",
"to": "Barcelona",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Bus",
"transportno": "M31, M32, M33",
"seatno": "Any"
},
{
"from": "Barcelona",
"to": "New York",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Flight",
"transportno": "B33",
"seatno": "Y15"
},
{
"from": "New York",
"to": "Stockholm",
"instruction": "",
"time": "2018-02-02 20:05",
"transport": "Flight",
"transportno": "M31, M32, M33",
"seatno": "Any"
}
]

最新更新