Ame*_*sed 2 javascript c# arrays sorting
我试图在C#和javascript中对数组进行排序.但我遇到的问题是排序结果都不匹配.它们的排序方式不同,例如输入数组是否有下划线.
在C#下面是一个示例代码,这是一个dotnetfiddle链接.
using System;
using System.Linq;
public class Program
{
public static void Main()
{
var array= new string[]{"Meter_2","Meter0Add","Meter0Replace","Meter_1","ZZZ"};
var temp= array.OrderBy(x => x).ToArray();
foreach(string x in temp)
{
Console.WriteLine(x);
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果:Meter_1,Meter_2,Meter0Add,Meter0Replace,ZZZ
在javascript下面是一个代码示例这是一个js小提琴链接.
var array = ["Meter_2","Meter0Add","Meter0Replace","Meter_1","ZZZ"];
array.sort();
document.writeln(array.join(", "));
Run Code Online (Sandbox Code Playgroud)
结果Meter0Add,Meter0Replace,Meter_1,Meter_2,ZZZ
问题是如何使javascript与C#相同?
JS Array#sort有一个默认的排序顺序,并且不稳定,除非提供了compare函数.据MDN称:
sort()方法对数组中的元素进行排序并返回数组.排序不一定稳定.默认排序顺序是根据字符串Unicode代码点.
如果您将String#localeCompare用作比较功能,您将获得相同的结果:
var array = ["Meter_2", "Meter0Add", "Meter0Replace", "Meter_1", "ZZZ"];
array.sort(function(a, b) {
return a.localeCompare(b);
});
console.log(array.join(", "));Run Code Online (Sandbox Code Playgroud)
注意:您可以在本文中找到更多信息 - 排序 - 我们做错了
| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |