使用Intl.Compare将typescript数组按字母先排序,数字后排序



我正在尝试根据它们的值对对象数组进行排序。

给定的输入let arr = ['4-5', 'null-4', '7-null', '1-2']

预期输出['null-4', '1-2', '4-5','7-null']

我试图使用string.localCompare()value.split('-'),但它似乎减慢了执行。然后我尝试使用Intl.Compare,但我得到的结果是['null-4','7-null', '1-2', '4-5']

如果有任何方法可以使用Intl.Compare

获得预期的输出

在排序数组之前运行arr = arr.map(s => s.replaceAll('null', '0')),看看这是否解决了您的问题。

你得到你的输出因为null - 4 == null7 - null == null

最新更新