我需要排序一個數組,但它只能在Chrome中正常工作。在Mozilla的規範,我發現這個文本但仍無法修復此:排序()在mozilla&opera中無法正常工作
「這個數組的元素進行排序排序不一定 穩定(即,比較相等不一定留元素如果comparefn不是未定義的,則它應該是 函數,它接受兩個參數x和y,並返回一個負值 如果x < y,如果x = y則爲零,如果x> y則返回正值, 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"
}
]
結果必然是
- 赫爾辛基 - 東京
- 東京 - 莫斯科
- 莫斯科 - 羅馬
- 羅馬 - 奧斯陸
- 奧斯陸 - 巴黎
- 巴黎 - 新紐約
護理提供有效的輸入,你得到了不同的結果? – 2013-03-24 15:55:02
當然,在瀏覽器和Mozilla的歌劇 – 2013-03-24 16:00:32
不同的結果,它清楚地說,你需要返回-1,0和1,所以當a.to == b.from它應該是0,而當a.to TheBrain 2013-03-24 16:03:09