<分区>
我有一个如下所示的数组:
order = [ "foo", "bar", "baz" ];
此数组包含我想作为对象数组排序依据的属性值。我想对数据进行排序,以便所有名称为“foo”的对象排在第一位,然后是“bar”,然后是“baz”。我的对象数组看起来像这样:
data = [
{name: "foo", score: 8},
{name: "baz", score: 4},
{name: "baz", score: 9},
{name: "foo", score: 6},
{name: "bar", score: 9}
];
我希望数据顺序的结果看起来像这样,数组按名称排序,但当名称相同时也按分数 desc 排序:
sortedData = [
{name: "foo", score: 8},
{name: "foo", score: 6},
{name: "bar", score: 9},
{name: "baz", score: 9},
{name: "baz", score: 4}
];
这是我到目前为止尝试过的代码:
order.forEach(name => {
sortedData = [...this.data].sort(function(obj1, obj2) {
return (
-(obj1.name) || obj2.score < obj1.score
);
});
});
console.log(sortedData);