使用嵌套文档lodash对文档数组进行排序

时间:2017-09-29 16:17:41

标签: javascript arrays sorting lodash

我使用嵌套文档的以下文档数组。我可以使用lodash库

使用嵌套文档中的特定字段对此数组进行排序
[{
    foo: {
        attrb: true,
        attrb1: xxx
    },
    foo1: {
        field1: xxx,
        field2: xxxx
    },
    foo2: {
        data: 1334,
        data1: 354354
    }
},
{
    foo: {
        attrb1: xyz
    },
    foo1: {
        field1: xxx,
        field2: xxxx
    },
    foo2: {
        data: 1334,
        data1: 354354
    }
},
{
    foo: {
        attrb1: xzy
    },
    foo1: {
        field1: xxx,
        field2: xxxx
    },
    foo2: {
        data: 1334,
        data1: 354354
    }
}]

如何使用lodash

使用数组文档foo中的attrb:true字段对此进行排序

1 个答案:

答案 0 :(得分:1)

你可以使用Lodash的sortBy功能:

const sorted = _.sortBy(data, 'foo.attrb');

但你不需要Lodash那样做。您可以使用Array#sort

const data = [{
    foo: {
        attrb: true
    }
},
{
    foo: {
    }
},
{
    foo: {
        attrb: true
    }
}];

const sorted = data.sort((a, b) => {
  return !!b.foo.attrb - !!a.foo.attrb;
});
console.log(sorted);