相关疑难解决方法(0)

Underscore.js案例不敏感排序

尝试使用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'}];
Run Code Online (Sandbox Code Playgroud)

使用此方法排序sortProperty ='name',结果在小写之前放置大写.

var sorted = _.sortBy(array, sortProperty);

1a2929 - abcdef
GGGGH - 123456
TEST - 4422
abc - Full description
test_1234 - zzaaa bb cc
zz1111 - ZAAbbbcc
Run Code Online (Sandbox Code Playgroud)

我认为这与区分大小写有关,但我无法弄清楚如何将数组中的名称更改为小写并进行比较.

任何帮助是极大的赞赏.

编辑:正如所指出的,你传入名称或函数,所以只需调整函数返回哪个字段进行排序:http: //jsfiddle.net/rjaqp1vg/5/

sorting case-insensitive underscore.js

27
推荐指数
2
解决办法
2万
查看次数

lodash orderBy在嵌套属性上

我正在使用v4.11.0.我想根据milliseconds属性对对象进行排序.这是阵列:

[
    {
        "name": "bug12755.xml",
        "list": "bugs42",
        "start-date": "2015-09-14",
        "age": {
            "text": "7 months",
            "milliseconds": 18381227304
        }
    },
    {
        "name": "bug12922.xml",
        "list": "bugs42",
        "start-date": "2015-08-27",
        "age": {
            "text": "8 months",
            "milliseconds": 19936427304
        }
    },
    {
        "name": "bug13183.xml",
        "list": "bugs50",
        "start-date": "2015-08-27",
        "age": {
            "text": "8 months",
            "milliseconds": 19936427305
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

我遗漏了一些关于这个iteratee功能的基本知识.我有这个,但似乎没有排序数组.提前致谢!

 _.orderBy(list, function(item) {
            return item.age.value;
        }, ['desc']);
Run Code Online (Sandbox Code Playgroud)

lodash

23
推荐指数
2
解决办法
2万
查看次数

标签 统计

case-insensitive ×1

lodash ×1

sorting ×1

underscore.js ×1