Javascript 尝试对对象进行排序将变成数组对象

Javascript 尝试对对象进行排序将变成数组对象,javascript,sorting,object,Javascript,Sorting,Object,这是默认api返回的方式。我想根据min\u conversion\u count属性对它们进行排序。 对影响我的代码的结构更改进行排序后。如何使用属性对它们进行排序并保持相同的格式 要排序的代码 var rewarddata = res1.response.reward_list; // console.log(rewarddata); sortable_data = []; console.log(rewarddata); for (var idx in rewarddata)

这是默认api返回的方式。我想根据
min\u conversion\u count
属性对它们进行排序。

对影响我的代码的结构更改进行排序后。如何使用属性对它们进行排序并保持相同的格式

要排序的代码

    var rewarddata = res1.response.reward_list;
// console.log(rewarddata);
sortable_data = [];

console.log(rewarddata);

for (var idx in rewarddata)
{
    sortable_data.push([idx,rewarddata[idx]]);
    sortable_data.sort(function(a, b) {
        return a[1].min_conversion_count - b[1].min_conversion_count;
    });
    console.log(sortable_data);
  }
排序后,它会像这样变化。

您从一个对象开始,然后将其放入一个数组以对其进行排序;数组排序后,必须将其重新转换为对象

const sortedObj = sortable_data.reduce((accum, [key, value]) => {
  accum[key] = value;
  return accum;
}, {});

请注意,属性排序通常不值得依赖。最好只保存一个排序键数组,然后改用该数组。

您的问题是什么?我想用我提到的属性对它们进行排序,格式和第一个屏幕截图相同。我该怎么做?对象键没有固有的顺序。改变数据结构的不是排序,而是显式地将对象转换为数组。对象不能排序,只能排序数组。如果要对项目进行排序,则必须使用数组。简言之,不能使用排序对象,因为它没有明确的属性排序概念。您可以有一个排序数组。修复其他代码以使用数组。这将返回值错误。它只是在此处分解您在代码中推送的两值数组:
sortable_data.push([idx,rewarddata[idx]])首先确保您的可排序_数据已排序并采用上述格式。经过几次调整后,它终于起作用了:)