【发布时间】:2012-02-21 07:03:56
【问题描述】:
我有一个对象数组:
var countries = [
{'id': 35, 'name': 'Перу'},
{'id': 45, 'name': 'Індія'},
{'id': 55, 'name': 'Єгипет'},
{'id': 65, 'name': 'Албанія'},
]
我需要按name 对其进行排序。这是我的算法:
function mySort(s1, s2) {
return s1.name.toString().localeCompare(s2.name.toString());
}
var sorted = countries.sort(mySort);
// result (incorrect)
sorted = [
{'id': 55, 'name': 'Єгипет'},
{'id': 45, 'name': 'Індія'},
{'id': 65, 'name': 'Албанія'},
{'id': 35, 'name': 'Перу'},
]
// must be
sorted = [
{'id': 65, 'name': 'Албанія'},
{'id': 55, 'name': 'Єгипет'},
{'id': 45, 'name': 'Індія'},
{'id': 35, 'name': 'Перу'},
]
我做错了什么?
这是example on jsfiddle 和我在 jsfiddle 中的结果截图。
谢谢!
编辑:
我发现只有 Google chrome 排序不正确:FireFox 和 Opera 正确。
【问题讨论】:
标签: javascript sorting