【发布时间】:2014-11-10 11:45:46
【问题描述】:
尝试让 underscore.js 进行不区分大小写的排序时遇到一些小问题。我有一个对象数组,希望能够按属性名称排序。
使用快捷方式sortBy
iteratee 也可以是要排序的属性的字符串名称(例如长度)。
要排序的数组:
var array = [{ name: 'test_1234', description: 'zzaaa bb cc'},
{ name: 'zz1111', description: 'ZAAbbbcc'},
{ name: 'TEST', description: '4422'},
{ name: '1a2929', description: 'abcdef'},
{ name: 'abc', description: 'Full description'},
{ name: 'GGGGH', description: '123456'}];
使用这种方法排序,sortProperty = 'name',结果大写在小写之前。
var sorted = _.sortBy(array, sortProperty);
1a2929 - abcdef
GGGGH - 123456
TEST - 4422
abc - Full description
test_1234 - zzaaa bb cc
zz1111 - ZAAbbbcc
我认为这与区分大小写有关,但我不知道如何将数组中的名称更改为小写并以这种方式进行比较。
非常感谢任何帮助。
编辑: 正如所指出的,您传入名称或函数,因此只需调整函数以返回要排序的字段: http://jsfiddle.net/rjaqp1vg/5/
【问题讨论】:
标签: sorting underscore.js case-insensitive