我想订购以下数组:
如果我执行以下操作:
_.orderBy(list, function (e) { return e.name, ['desc'] })
Run Code Online (Sandbox Code Playgroud)
它将返回:
如您所见,它按字母顺序正确排列列表,但不考虑字符串末尾的数字。
非常感谢您的帮助:)
您可以localeCompare通过将numeric选项指定为 来对数组进行排序true。
var data = [{name: '2014 Autumn Grth 10'},{name: '2014 Autumn Grth 4'},{name: '2014 Autumn Grth 5'},{name: '2014 Autumn Ethical Balanced'},{name: '2014 Autumn Grth 6'},{name: '2014 Autumn Grth 7'},{name: '2014 Summer Grth 7'},{name: '2014 Autumn Grth 9'}];
var result = data.slice().sort((a,b) => a.name.localeCompare(b.name, undefined, {numeric: true}));
console.log(result);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2571 次 |
| 最近记录: |