JavaScript 字符串排序
在 JavaScript 中,由于其怪癖,对字符串进行排序可能有点棘手。一个常见的挑战是使用 sort() 方法根据字符串属性对对象进行排序。
问题:
尝试使用 list.sort(function ( a, b) { return a.attr - b.attr }) 对于字符串经常失败
解决方案:
要在 JavaScript 中对字符串进行排序,请在排序函数中使用 String.prototype.localeCompare:
list.sort(function (a, b) { return ('' + a.attr).localeCompare(b.attr); });
通过转换a.attr 显式地设置为字符串,我们可以避免异常。 localeCompare 支持区域设置感知比较,并在浏览器中得到广泛支持。
替代方法:
另一种方法是使用以下代码片段:
if (item1.attr < item2.attr) return -1; if ( item1.attr > item2.attr) return 1; return 0;
但是,这种方法不尊重区域设置,并且可能在不同环境中产生不一致的结果。
以上是如何正确排序 JavaScript 对象数组中的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!