我将尝试对一个数组进行排序。
例如:
当我试图对其进行排序时,“Name 10”排在第一位,但“Name 3”应该排在第一位。
我也尝试过这个方法 -
但是仍然没有运气。有人能指出这里的问题吗?
请参考:
例如:
let arr = [{label: "Name 5"}, {label: "Name 3"},{label: "Name 12"}, {label: "Name 10"}, {label: "First Name 5"}, {label: "Apple"}, {label: "Orange"}, {label: "water"}];
let sortedArray = arr.sort(function(a, b){
return a.label.localeCompare(b.label);
});
console.log(sortedArray);
我也尝试过这个方法 -
let sortedArray = arr.sort(function(a, b){
var nameA=a.label.toLowerCase(), nameB=b.label.toLowerCase();
if (nameA < nameB){
return -1;
} //sort string ascending
if (nameA > nameB){
return 1;
}
return 0; //no sorting
});
And this -
Array.prototype.reverse()
String.prototype.localeCompare()
但是仍然没有运气。有人能指出这里的问题吗?
请参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
localeCompare
的参数。谢谢你的帮助 :) - Joomlerlocales
和options
参数需要现代浏览器。 - Salman Anew Date().toISOString()
,然后对该值使用标准的localeCompare
即可按预期工作。然后,在显示时使用神奇的date-fns
进行格式化:https://date-fns.org/v1.29.0/docs/format。 - user1063287