尝试将对象排序为数组对象

时间:2018-03-19 21:48:34

标签: javascript sorting object

这是默认api的返回方式。我想根据min_conversion_count属性对它们进行排序。 my initial api return

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

要排序的代码

    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);
  }

排序后,它会发生这样的变化。 enter image description here

1 个答案:

答案 0 :(得分:2)

你开始使用一个对象,然后将它放入一个数组中以对其进行排序;一旦你的数组被排序,你必须将它变回一个对象。

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

请注意,属性排序通常不能依赖。最好只保存已排序的的数组,然后再使用该数组。