我有一个SortableList,您可以在其中组织订单以制作过滤器优先级。
像那样:[
0: "Fruits",
1: "Legumes",
2: "Example1",
]
然后我有一些这样的数据:
[
{
id: 0,
_source: {
someOtherProps,
source: "Fruits"
}
},
{
id: 1,
_source: {
someOtherProps,
source: "Example1"
}
},
.... blablabla
]
我希望按来源对数据进行排序,尊重订单优先级。
我尝试使用sort()函数,但我对如何做到这一点没有任何想法。
在这个例子中:我将所有数据对象首先由源“Fruits”排序,然后是“Legumes”,然后是“Example1”。
答案 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; }