我需要排序一个数组,但它只能在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