我有一个希望基于字符串类型的字段attr
进行排序的对象列表.我试着用-
list.sort(function (a, b) {
return a.attr - b.attr
})
但是发现-
似乎不能处理JavaScript中的字符串.如何根据类型为String的属性对对象列表进行排序?
我有一个希望基于字符串类型的字段attr
进行排序的对象列表.我试着用-
list.sort(function (a, b) {
return a.attr - b.attr
})
但是发现-
似乎不能处理JavaScript中的字符串.如何根据类型为String的属性对对象列表进行排序?
每个示例使用String.prototype.localeCompare
a:
list.sort(function (a, b) {
return ('' + a.attr).localeCompare(b.attr);
})
我们强制a.attr为字符串以避免异常.localeCompare
已经得到since Internet Explorer 6和Firefox 1的支持.您还可能会看到使用的以下代码与区域设置无关:
if (item1.attr < item2.attr)
return -1;
if ( item1.attr > item2.attr)
return 1;
return 0;