按优先级排序数据

时间:2017-08-02 14:14:54

标签: javascript react-native

我有一个SortableList,您可以在其中组织订单以制作过滤器优先级。

像那样:

[
    0: "Fruits",
    1: "Legumes",
    2: "Example1",
]

然后我有一些这样的数据:

[
    {
        id: 0,
        _source: {
                     someOtherProps,
                     source: "Fruits"
                 }
    },
    {
        id: 1,
        _source: {
                    someOtherProps, 
                    source: "Example1"
                 }
    },
    .... blablabla
]

我希望按来源对数据进行排序,尊重订单优先级。

我尝试使用sort()函数,但我对如何做到这一点没有任何想法。

在这个例子中:我将所有数据对象首先由源“Fruits”排序,然后是“Legumes”,然后是“Example1”。

1 个答案:

答案 0 :(得分:1)

您可以使用对象作为排序顺序,并将delta作为回调的结果。



var order = { Fruits: 1, Legumes: 2, Example1: 3 },
    data = [{ id: 0, _source: { source: "Fruits" } }, { id: 1, _source: { source: "Example1" } }];
    
data.sort((a, b) => order[a._source.source] - order[b._source.source]);

console.log(data);

.as-console-wrapper { max-height: 100% !important; top: 0; }