首页 >web前端 >js教程 >如何正确排序 JavaScript 对象数组中的字符串?

如何正确排序 JavaScript 对象数组中的字符串?

Patricia Arquette
Patricia Arquette原创
2024-11-25 12:35:12815浏览

How to Correctly Sort Strings in JavaScript Object Arrays?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn