gpt4 book ai didi

javascript - 如何对包含破折号的数值数组进行排序? (仅限 JavaScript)

转载 作者:行者123 更新时间:2023-11-30 12:07:56 25 4
gpt4 key购买 nike

我有这个功能可以将这些电话号码从大到小排序。当我删除数字中的破折号时它工作正常,但我应该让它与包含的破折号一起工作。所以我的问题是是否可以让我的函数忽略数字中的破折号?

var numberSorter=function(phoneNumbers){var organize=function(a, b){return b-a};
return phoneNumbers.sort(organize);}

var myNumbers=[914-954-1298, 914-954-1297, 954-914-1299]

console.log(numberSorter(myNumbers));

最佳答案

您可以保留电话号码中的标点符号,但在排序时忽略它。只需更改比较函数 organize,将数字的剥离版本作为字符串进行比较。 (如果需要,您可以使用 parseInt() 将这些字符串转换为数字。)

可以通过更改 RegExp 以去除典型的拨号标点符号来支持其他标点符号:

.replace(/[,()-]/g,"")

或者如 pherris 所建议的那样,删除所有非数字:

.replace(/\D/g, '');

您可以运行此代码段:

var numberSorter=function(phoneNumbers){
var organize=function(a, b){return a.replace(/-/g,"").localeCompare(b.replace(/-/g,""))};

return phoneNumbers.sort(organize);
}

var myNumbers=['914-954-1298', '914-954-1297', '954-914-1299']

snippet.log(numberSorter(myNumbers));
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

关于javascript - 如何对包含破折号的数值数组进行排序? (仅限 JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34646598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com