我正在寻找一种最简单的方法来排序由数字和文本组成的数组,以及这些数组的组合.
例如
'123asd'
'19asd'
'12345asd'
'asd123'
'asd12'
Run Code Online (Sandbox Code Playgroud)
变成
'19asd'
'123asd'
'12345asd'
'asd12'
'asd123'
Run Code Online (Sandbox Code Playgroud)
这将与我在这里提出的另一个问题的解决方案结合使用.
排序函数本身就可以工作,我需要的是一个可以说'19asd'小于'123asd'的函数.
我是用JavaScript编写的.
编辑:正如adormitu指出的那样,我正在寻找的是一种自然分类的功能
我在JavaScript中有一个包含以下内容的数组:
我将如何排序此数组,使其不显示如下:
但是:
任何帮助都会很棒.
我有一系列的值,如:
item1, item3, item2, item4, item5, item8, item6, item9, item10, item7, item11
Run Code Online (Sandbox Code Playgroud)
当我使用.sort()j 在javascript中对它们进行排序时得到以下结果:
item1, item10, item11, item2, item3, item4, item5, item6, item7, item8, item9
Run Code Online (Sandbox Code Playgroud)
我知道这是因为这些项目是字符串,这sort()是设计目的,但我怎样才能将它们分类为以下内容?
item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11
Run Code Online (Sandbox Code Playgroud)
谢谢,
想象一下这个数组:
var fees = [
'$0.9 + $0.1',
'$20 + $2',
'$0.7 + $0.4',
'$5 + $0.5',
'$0 + $0.01',
'$100 + $9',
'$1 + $1',
'$2 + $0.5'
];
Run Code Online (Sandbox Code Playgroud)
如果使用vanilla JavaScript,我将如何按数字升序排序这些字符串值?
排序后所需的输出:
['$0 + $0.01', '$0.7 + $0.4', '$0.9 + $0.1', '$1 + $1', '$2 + $0.5', '$5 + $0.5', '$20 + $2', '$100 + $9']
我尝试了以下方法:
function mySort(a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
}
Run Code Online (Sandbox Code Playgroud)
但这只是输出:
["$0 + …