Javascript 尝试对对象进行排序将变成数组对象
这是默认api返回的方式。我想根据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)
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]])代码>首先确保您的可排序_数据已排序并采用上述格式。经过几次调整后,它终于起作用了:)