我在这里问了同样的问题 How to sort an ArrayList using a Map key as list object and value as order?但我需要 JavaScript 的等价物。我需要保持对象列表的顺序,因为它可以在我的 web 应用程序中随时更改和重新排序。在我的模型中,我有一个对象数组列表示例对象列表 = [对象 1,对象 2,对象 3,对象 4]我将属于此实例的每个对象的顺序保存到另一个对象示例中:命令{ "object1":4, "object2":2, "object3":1, "object4":3}因此,我想根据对象 ID 作为键检索的订单对象属性中的值对列表进行排序:预期结果:[对象 3,对象 2,对象 4,对象 1]在Java中这有效objectList.sort(Comparator.comparing(o -> yourMap.get(o.getId()));但是我不确定如何在 JavaScript 中实现同样的排序编辑只是为了澄清,我不想对订单对象进行排序。我想使用在 order 对象中维护的 order 对 objectList 进行排序
2 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
这可以解决问题并通过使用对象 id 作为键来检索订单值。然后我们只是比较这些值进行排序
this.objectList.sort(function(a, b)
{
if(order[a._id] > order[b._id]) return 1;
if(order[b._id] > order[a._id]) return -1;
return 0;
});
qq_笑_17
TA贡献1818条经验 获得超7个赞
对象键的顺序永远无法保证。您可以创建对象值的数组,Object.values然后使用sort它们
const data = {
"object1": 4,
"object2": 2,
"object3": 1,
"object4": 3
};
const sortedVal = Object.values(data).sort((a, b) => a - b);
console.log(sortedVal)
添加回答
举报
0/150
提交
取消