javascript - JS 对象的 Intl.Collator
问题描述
我无法在任何地方找到使用 collator.compare 对对象进行排序的任何示例。谁能提供?到目前为止,我遇到的所有文档和示例都显示数组排序,如下例所示:
var myArray = ['1_Document', '11_Document', '2_Document'];
var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
myArray.sort(collator.compare)
很高兴看到这对像这样的对象是如何工作的
var objs = [{name: '1_Document', size: 40}, {name: '11_Document', size: 50}, {name: '2_Document', size: 60}];
解决方案
您可以使用 Intl.Collator 对对象数组进行排序,方法是包装collator.compare
到将对象引用作为参数传递的函数中
var collator = new Intl.Collator(undefined, {
numeric: true,
sensitivity: 'base'
});
var objs = [{
name: '1_Document',
size: 40
}, {
name: '11_Document',
size: 50
}, {
name: '2_Document',
size: 60
}];
objs.sort(function(a, b) {
return collator.compare(a.name, b.name)
});
console.log(objs);
推荐阅读
- python - Odoo 10 - 带有 onChange() 装饰器的函数和新对象
- sql - 获取日期函数
- xamarin.forms - 带有 Xamarin 表单的 MobileFirst 7.1
- linux - “conda init”阻止 anaconda-navigator 在除基本环境之外的所有环境中工作
- android - 有没有办法在 ExoPlayer 中知道正在播放的 IMA 广告是前贴片广告、中贴片广告还是后贴片广告?
- c# - 如何在 .NET 中通过 ssh 连接实现发送和接收 hl7 数据
- haskell - Haskell 中的匿名函数类型
- c - 在收到 SIGSEGV 或 SIGBUS 后,进程能否以某种方式继续而不会崩溃?
- r - 在R中计算大圆距离
- jquery - 在议程日视图中禁用拖动到另一天 (fullCalendar)