为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用对象的属性作为列表对象和值作为顺序对列表进行排序?

如何使用对象的属性作为列表对象和值作为顺序对列表进行排序?

米琪卡哇伊 2022-07-08 15:52:21
我在这里问了同样的问题 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;

    });


查看完整回答
反对 回复 2022-07-08
?
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)


查看完整回答
反对 回复 2022-07-08
  • 2 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信