1つの配列を並べ替える必要がありますが、Chromeでのみ正しく機能します。mozilla仕様で私はこのテキストを見つけましたが、それでもこれを修正することはできません:
「この配列の要素は並べ替えられます。並べ替えは必ずしも安定していません(つまり、等しいと比較する要素は必ずしも元の順序のままではありません)。comparefnが未定義でない場合は、2つの引数xとを受け入れる関数である必要があります。 yであり、x <yの場合は負の値、x = yの場合はゼロ、x>yの場合は正の値を返します。」
そしてこのリンクhttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort はあなたと私を助けるかもしれません
これは私のコードです
arr.sort(sortTrip);
function sortTrip(a, b) {
if (a.to != b.from) return 1;
if (a.to == b.from) return -1;
}
そしてこれはarr
:
var arr = [
{
"from": "Moscow",
"to": "Rome",
"transport": "NSB Regiontog Train",
"seat": "25"
},
{
"from": "Oslo",
"to": "Paris",
"transport": "NSB Regiontog Train",
"seat": "25"
},
{
"from": "Helsinki",
"to": "Tokio",
"transport": "NSB Regiontog Train",
"seat": "25"
},
{
"from": "Tokio",
"to": "Moscow",
"transport": "NSB Regiontog Train",
"seat": "25"
},
{
"from": "Paris",
"to": "New-York",
"transport": "NSB Regiontog Train",
"seat": "25"
},
{
"from": "Rome",
"to": "Oslo",
"transport": "NSB Regiontog Train",
"seat": "25"
}
]
結果は
- ヘルシンキ-トキオ
- 東京-モスクワ
- モスクワ-ローマ
- ローマ-オスロ
- オスロ-パリ
- パリ-ニューヨーク