如何对打字稿中的对象数组进行排序?

时间:2021-01-31 15:27:51

标签: typescript

我正在尝试按 json 数组的距离排序。我试过使用 .sort() 函数,但我无法让它工作。我正在用打字稿编码。

sortArr = [
{id: 1, distance: 2.56},
{id: 2, distance: 3.65},
{id: 3, distance: 9.25},
{id: 4, distance: 5.32},
{id: 5, distance: 2.56}
]

sortArr.distance.sort(function(a,b){return a-b;});

3 个答案:

答案 0 :(得分:4)

你几乎猜对了:

sortArr = [
{id: 1, distance: 2.56},
{id: 2, distance: 3.65},
{id: 3, distance: 9.25},
{id: 4, distance: 5.32},
{id: 5, distance: 2.56}
]

sortArr.sort(function(a,b){return a.distance-b.distance;});

答案 1 :(得分:3)

您需要在阵列上调用 sort

const array = [
  {id: 1, distance: 2.56},
  {id: 2, distance: 3.65},
  {id: 3, distance: 9.25},
  {id: 4, distance: 5.32},
  {id: 5, distance: 2.56}
];

const sorted = array.sort((a, b) => a.distance - b.distance);
console.log(sorted);

不过,sortArr.distance.sort(function(a, b) { return a-b; }); 应该至少显示一个错误:

Property 'distance' does not exist on type '{ id: number; distance: number; }[]'.

答案 2 :(得分:1)

sortArr.sort(function(a,b){return a['distance']-b['distance'];});